Всю голову уже сломал, но никак не соображу... Итак, код: Код (Text): seg025:0020 RAND proc far seg025:0020 var_10 = word ptr -10h seg025:0020 @@real = qword ptr -0Ch seg025:0020 @@result = word ptr -4 seg025:0020 var_2 = word ptr -2 seg025:0020 ?Counter = word ptr 6 seg025:0020 arg_2 = word ptr 8 seg025:0020 ?MinValue = word ptr 0Ah seg025:0020 push bp seg025:0021 mov bp, sp seg025:0023 sub sp, 10h seg025:0026 push di seg025:0027 push si seg025:0028 mov [bp+@@result], 0 seg025:002D cmp [bp+arg_2], 0 seg025:0031 jnz short @@1 seg025:0033 mov ax, [bp+?MinValue] seg025:0036 pop si seg025:0037 pop di seg025:0038 mov sp, bp seg025:003A pop bp seg025:003B retf seg025:003C @@1: seg025:003C mov [bp+var_2], 0 seg025:0041 cmp [bp+?Counter], 0 seg025:0045 jle short @@exit seg025:0047 fild [bp+arg_2] seg025:004B fstp [bp+@@real] seg025:004F wait seg025:0051 mov si, [bp+?Counter] seg025:0054 mov ax, si seg025:0056 add [bp+var_2], ax seg025:0059 mov di, [bp+@@result] seg025:005C @@loop: seg025:005C call sub_3CADC seg025:0061 mov [bp+var_10], ax seg025:0064 fild [bp+var_10] seg025:0068 fdiv NumDbl_32767 seg025:006D fmul [bp+@@real] seg025:0071 fadd NumDbl_1 seg025:0076 call sub_3D724 seg025:007B add di, ax seg025:007D dec si seg025:007E jnz short @@loop seg025:0080 mov [bp+@@result], di seg025:0083 @@exit: seg025:0083 mov ax, [bp+@@result] seg025:0086 add ax, [bp+?MinValue] seg025:0089 pop si seg025:008A pop di seg025:008B mov sp, bp seg025:008D pop bp seg025:008E retf seg025:008E RAND endp seg081:38E4 sub_3D724 proc far seg081:38E4 var_C = qword ptr -0Ch seg081:38E4 var_4 = word ptr -4 seg081:38E4 @@fpuControlWord = word ptr -2 seg081:38E4 push bp seg081:38E5 mov bp, sp seg081:38E7 sub sp, 0Ch seg081:38EA push bx seg081:38EB push cx seg081:38EC push si seg081:38ED push di seg081:38EE fnstcw [bp+@@fpuControlWord] seg081:38F2 wait seg081:38F4 mov ax, [bp+@@fpuControlWord] seg081:38F7 or ah, 0Ch seg081:38FA mov [bp+var_4], ax seg081:38FD fldcw [bp+var_4] seg081:3901 fistp [bp+var_C] seg081:3905 fldcw [bp+@@fpuControlWord] seg081:3909 mov ax, word ptr [bp+var_C] seg081:390C mov dx, word ptr [bp+var_C+2] seg081:390F pop di seg081:3910 pop si seg081:3911 pop cx seg081:3912 pop bx seg081:3913 mov sp, bp seg081:3915 pop bp seg081:3916 retf seg081:3916 sub_3D724 endp // библиотечная seg081:2C9C sub_3CADC seg081:2C9C mov ax, offset unk_58FFD seg081:2C9F mov dx, 3 seg081:2CA2 push dx seg081:2CA3 push ax seg081:2CA4 push word ptr ?RandSeed+2 seg081:2CA8 push word ptr ?RandSeed seg081:2CAC nop seg081:2CAD push cs seg081:2CAE call near ptr sub_3CE34 seg081:2CB1 add ax, 40643 seg081:2CB4 adc dx, 38 seg081:2CB7 mov word ptr ?RandSeed, ax seg081:2CBA mov word ptr ?RandSeed+2, dx seg081:2CBE mov ax, dx seg081:2CC0 and ah, 7Fh seg081:2CC3 retf seg081:2CC3 sub_3CADC endp dseg:43FD unk_58FFD db 0 dseg:43FE db 2Bh dseg:43FF db 0 dseg:4400 db 2Eh dseg:4401 db 0 dseg:4402 db 6 dseg:4403 db 0 dseg:4404 db 8 dseg:4405 db 0 // библиотечная seg081:2FF4 sub_3CE34 proc far seg081:2FF4 arg_0 = word ptr 6 seg081:2FF4 arg_2 = word ptr 8 seg081:2FF4 arg_4 = word ptr 0Ah seg081:2FF4 arg_6 = word ptr 0Ch seg081:2FF4 push bp seg081:2FF5 mov bp, sp seg081:2FF7 mov ax, [bp+arg_2] seg081:2FFA mov bx, [bp+arg_6] seg081:2FFD or bx, ax seg081:2FFF mov bx, [bp+arg_4] seg081:3002 jnz short @@1 seg081:3004 mov ax, [bp+arg_0] seg081:3007 mul bx seg081:3009 mov sp, bp seg081:300B pop bp seg081:300C retf 8 seg081:300F @@1: seg081:300F mul bx seg081:3011 mov cx, ax seg081:3013 mov ax, [bp+arg_0] seg081:3016 mul [bp+arg_6] seg081:3019 add cx, ax seg081:301B mov ax, [bp+arg_0] seg081:301E mul bx seg081:3020 add dx, cx seg081:3022 mov sp, bp seg081:3024 pop bp seg081:3025 retf 8