Function at 0x4134a0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xcac
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push 0x44ccec
mov dword [esp + 0x1c], ecx
push edi
mov dword [esp + 0x2c], 0x4cbebc20
mov dword [esp + 0x28], 0xccbebc20
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0x3ff00000
call dword [sym.imp.MSVCRT.dll_fopen]
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4135b0
mov eax, dword [str.Can_not_open_file:]
mov ecx, dword [0x44ccdc]
mov edx, dword [0x44cce0]
mov dword [esp + 0xab8], eax
mov eax, dword [0x44cce4]
mov dword [esp + 0xabc], ecx
mov cx, word [0x44cce8]
mov dword [esp + 0xac0], edx
mov dl, byte [0x44ccea]
mov dword [esp + 0xac4], eax
mov word [esp + 0xac8], cx
mov ecx, 0x7b
xor eax, eax
lea edi, [esp + 0xacb]
mov byte [esp + 0xaca], dl
lea edx, [esp + 0xab8]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov edi, dword [ebp + 8]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0xc]
mov ecx, ebx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x4135a5
push 0
lea eax, [esp + 0xabc]
push 0
push eax
call sub.MFC42.DLL_AfxMessageBox
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov esi, dword [sym.imp.MSVCRT.dll_fgets]
push ebx
lea ecx, [esp + 0x15c]
push 0x200
push ecx
call esi
mov al, byte [esp + 0x164]
add esp, 0xc
cmp al, 0xa
jne 0x4135f2
push ebx
lea edx, [esp + 0x15c]
push 0x200
push edx
call esi
mov al, byte [esp + 0x164]
add esp, 0xc
cmp al, 0xa
je 0x4135d4
cmp al, 0x49
jne 0x414311
cmp byte [esp + 0x159], 0x49
jne 0x414311
cmp byte [esp + 0x15a], 0x2a
jne 0x414311
push ebx
call dword [sym.imp.MSVCRT.dll_fclose]
push Ordinal_3
push edi
call fcn.00415ce0
mov ebx, eax
add esp, 0xc
test ebx, ebx
mov dword [esp + 0x1c], ebx
je 0x414306
cmp ebx, 0xffffffff
je 0x414306
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0xe4]
mov dword [esp + 0x118], eax
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [esp + 0x54], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x24], eax
push eax
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x98]
push 2
mov esi, 0x4949
push ecx
push ebx
mov dword [esp + 0x4c], 1
mov dword [esp + 0xa4], esi
call edi
cmp word [esp + 0x90], si
jne 0x4142ff
lea edx, [esp + 0x6c]
push 0
push edx
lea eax, [esp + 0x98]
push 2
mov esi, 0x2a
push eax
push ebx
mov dword [esp + 0xa4], esi
call edi
cmp word [esp + 0x90], si
jne 0x4142ff
lea ecx, [esp + 0x6c]
push 0
push ecx
lea edx, [esp + 0x88]
push 4
push edx
push ebx
mov dword [esp + 0x94], 8
call edi
mov eax, dword [esp + 0x80]
mov esi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
xor ecx, ecx
mov dword [esp + 0x128], eax
mov dword [esp + 0x154], ecx
push ecx
lea ecx, [esp + 0x158]
mov dword [esp + 0x154], eax
push ecx
push eax
push ebx
call esi
lea edx, [esp + 0x6c]
push 0
push edx
lea eax, [esp + 0x11c]
push 2
push eax
push ebx
mov dword [esp + 0x128], 0xd
call edi
xor eax, eax
cmp word [esp + 0x114], ax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x3c], eax
jbe 0x41396c
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x128]
and eax, 0xffff
lea eax, [eax + eax*2]
shl eax, 2
cdq
add eax, ecx
mov ecx, 0
adc edx, ecx
add eax, 2
adc edx, ecx
push ecx
lea ecx, [esp + 0x150]
mov dword [esp + 0x14c], eax
push ecx
push eax
push ebx
mov dword [esp + 0x15c], edx
call esi
xor eax, eax
lea edx, [esp + 0xd4]
mov dword [esp + 0x58], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0xd4], eax
push eax
push edx
lea eax, [esp + 0x60]
push 2
push eax
push ebx
call edi
lea ecx, [esp + 0xd4]
push 0
push ecx
lea edx, [esp + 0x124]
push 2
push edx
push ebx
call edi
lea eax, [esp + 0xd4]
push 0
push eax
lea ecx, [esp + 0x9c]
push 4
push ecx
push ebx
call edi
lea edx, [esp + 0xd4]
push 0
push edx
lea eax, [esp + 0x28]
push 4
push eax
push ebx
call edi
mov ecx, dword [esp + 0x58]
and ecx, 0xffff
lea eax, [ecx - 0x100]
cmp eax, 0x53
ja case.0x41382e.264
xor edx, edx
mov dl, byte [eax + 0x415c80]
jmp dword [edx*4 + 0x415c54]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10c], eax
jmp case.0x41382e.264
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x110], ecx
jmp case.0x41382e.264
mov edx, dword [esp + 0x20]
mov dword [esp + 0x54], edx
jmp case.0x41382e.264
mov eax, dword [esp + 0x20]
mov dword [esp + 0x118], eax
jmp case.0x41382e.264
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x20]
cmp eax, 1
mov dword [esp + 0x7c], ecx
jbe case.0x41382e.264
lea edx, [eax*4]
push edx
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x7c]
lea ecx, [esp + 0x144]
push 0
push ecx
push eax
push ebx
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], 0
call esi
mov eax, dword [esp + 0x94]
lea edx, [esp + 0x6c]
push 0
push edx
mov edx, dword [esp + 0x2c]
lea ecx, [eax*4]
push ecx
push edx
jmp 0x413952
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], eax
jmp case.0x41382e.264
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x4c], ecx
jmp case.0x41382e.264
mov edx, dword [esp + 0x20]
mov dword [esp + 0x50], edx
jmp case.0x41382e.264
mov eax, dword [esp + 0x20]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x94]
cmp eax, 1
jbe case.0x41382e.264
lea ecx, [eax*4]
push ecx
call sub.MFC42.DLL_operatornew
mov edx, dword [esp + 0x80]
push 0
push 0
push edx
push ebx
mov dword [esp + 0x38], eax
call fcn.00417e60
mov ecx, dword [esp + 0xa8]
add esp, 0x14
lea eax, [esp + 0x6c]
push 0
push eax
mov eax, dword [esp + 0x2c]
lea edx, [ecx*4]
push edx
push eax
push ebx
call edi
mov eax, dword [esp + 0x3c]
inc eax
cmp ax, word [esp + 0x114]
mov dword [esp + 0x3c], eax
jb 0x413759
mov ecx, dword [esp + 0x110]
imul ecx, dword [esp + 0x10c]
test ecx, ecx
jle 0x4142ff
mov ecx, dword [esp + 0x54]
cmp ecx, 0x10
jb 0x4142ff
cmp ecx, 0x20
ja 0x4142ff
mov eax, dword [esp + 0x38]
cmp eax, 3
ja 0x4142ff
jne 0x4139b1
cmp ecx, 0x20
jne 0x4142ff
mov edi, dword [ebp + 8]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xab8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x2e
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xabc]
push ecx
call dword [sym.imp.MSVCRT.dll_strrchr]
mov edx, eax
mov edi, str..tfw
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x44ccec
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xac4]
mov dword [esp + 0xd4], 0
push ecx
mov dword [esp + 0xdc], 0x3ff00000
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0x3ff00000
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x134], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0
call dword [sym.imp.MSVCRT.dll_fopen]
mov esi, eax
add esp, 0x10
test esi, esi
je 0x413b67
mov edi, dword [sym.imp.MSVCRT.dll_fscanf]
lea edx, [esp + 0xc8]
push edx
push 0x44cccc
push esi
call edi
lea eax, [esp + 0xe4]
push eax
push 0x44cccc
push esi
call edi
lea ecx, [esp + 0x28]
push ecx
push 0x44cccc
push esi
call edi
lea edx, [esp + 0x15c]
push edx
push 0x44cccc
push esi
call edi
lea eax, [esp + 0x150]
push eax
push 0x44cccc
push esi
call edi
lea ecx, [esp + 0x16c]
push ecx
push 0x44cccc
push esi
call edi
add esp, 0x48
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
fld qword [esp + 0xcc]
fmul qword [0x442540]
add esp, 4
fadd qword [esp + 0x120]
fstp qword [esp + 0x120]
fld qword [esp + 0x138]
fmul qword [0x442540]
fadd qword [esp + 0x130]
fstp qword [esp + 0x130]
fld qword [esp + 0xd8]
fld qword [esp + 0xc8]
fpatan
fstp qword [esp + 0xf4]
fld qword [esp + 0xf4]
fcos
fld qword [esp + 0xf4]
fsin
fld st(1)
fcomp qword [0x442618]
fnstsw ax
test ah, 0x40
je 0x413ba0
fld qword [esp + 0x10]
fdiv st(1)
fstp qword [esp + 0xfc]
fld qword [esp + 0xd8]
fdiv st(1)
jmp 0x413bbb
fld qword [esp + 0xc8]
fdiv st(2)
fstp qword [esp + 0xfc]
fld qword [esp + 0x138]
fdiv st(2)
fchs
fstp qword [esp + 0x104]
fld qword [esp + 0x138]
fcomp qword [0x442618]
fnstsw ax
test ah, 1
jne 0x413bf6
mov edx, dword [esp + 0x120]
mov eax, dword [esp + 0x124]
fstp st(0)
mov dword [esp + 0xe4], edx
mov dword [esp + 0xe8], eax
jmp 0x413c1f
mov ecx, dword [esp + 0x110]
dec ecx
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fmul qword [esp + 0x104]
fmul st(1)
fadd qword [esp + 0x120]
fstp qword [esp + 0xe4]
fstp st(0)
fld qword [esp + 0x138]
fcomp qword [0x442618]
fnstsw ax
test ah, 1
jne 0x413c53
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x134]
fstp st(0)
mov dword [esp + 0xec], edx
mov dword [esp + 0xf0], eax
jmp 0x413c7c
mov ecx, dword [esp + 0x110]
dec ecx
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fmul qword [esp + 0x104]
fmul st(1)
fsubr qword [esp + 0x130]
fstp qword [esp + 0xec]
fstp st(0)
sub esp, 0x30
mov ecx, 0xc
lea esi, [esp + 0x114]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x48]
call fcn.00415d30
mov eax, dword [esp + 0x50]
test eax, eax
je 0x414088
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x414088
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov ebx, esi
imul ebx, dword [esp + 0x4c]
imul ebx, dword [esp + 0x118]
shr eax, 3
imul ebx, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x48], ebx
lea edx, [ebx + 8]
push edx
call sub.MFC42.DLL_operatornew
imul esi, dword [esp + 0x50]
mov edi, eax
mov dword [esp + 0x34], esi
lea eax, [esi*4]
mov dword [esp + 0x8c], edi
push eax
call sub.MFC42.DLL_operatornew
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x114]
add esp, 8
lea eax, [eax + ecx - 1]
cdq
idiv ecx
mov edx, dword [esp + 0x110]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x3c], eax
lea eax, [edx + ecx - 1]
cdq
idiv ecx
xor ecx, ecx
mov dword [esp + 0x40], ecx
test eax, eax
mov dword [esp + 0xc], eax
jle 0x413fac
mov eax, dword [esp + 0x3c]
xor edx, edx
test eax, eax
mov dword [esp + 0x64], edx
jle 0x413f9b
mov dword [esp + 0x68], edx
jmp 0x413d6d
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x88]
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x413d81
imul ecx, dword [esp + 0x3c]
add ecx, edx
mov eax, dword [eax + ecx*4]
jmp 0x413da7
mov eax, ecx
mov ecx, dword [esp + 0x7c]
imul eax, dword [esp + 0x3c]
add eax, edx
imul eax, dword [esp + 0x50]
imul eax, dword [esp + 0x4c]
imul eax, dword [esp + 0x118]
imul eax, dword [esp + 0x60]
add eax, ecx
mov ecx, dword [esp + 0x1c]
push 0
push 0
push eax
push ecx
call fcn.00417e60
mov eax, dword [esp + 0x2c]
add esp, 0x10
lea edx, [esp + 0x6c]
push 0
push edx
push ebx
push edi
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x38]
dec eax
je 0x413e44
dec eax
je 0x413dfe
dec eax
jne 0x413e9d
lea ecx, [esi*4]
mov esi, edi
mov edi, dword [esp + 0x2c]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x413e9d
cmp dword [esp + 0x54], 0x10
jne 0x413e2a
mov eax, dword [esp + 0x2c]
test esi, esi
jle 0x413e9d
movsx ecx, word [edi]
mov dword [esp + 0x44], ecx
add edi, 2
fild dword [esp + 0x44]
add eax, 4
dec esi
fstp dword [eax - 4]
jne 0x413e11
jmp 0x413e9d
test esi, esi
mov eax, edi
jle 0x413e9d
mov ecx, dword [esp + 0x2c]
sub ecx, edi
fild dword [eax]
add eax, 4
dec esi
fstp dword [eax + ecx - 4]
jne 0x413e36
jmp 0x413e9d
cmp dword [esp + 0x54], 0x10
jne 0x413e6e
mov eax, dword [esp + 0x2c]
test esi, esi
jle 0x413e9d
xor edx, edx
add eax, 4
mov dx, word [edi]
add edi, 2
mov dword [esp + 0x44], edx
dec esi
fild dword [esp + 0x44]
fstp dword [eax - 4]
jne 0x413e53
jmp 0x413e9d
xor edx, edx
mov eax, edi
cmp esi, edx
jle 0x413e9d
mov ecx, dword [esp + 0x2c]
sub ecx, edi
mov edi, dword [eax]
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], edi
add eax, 4
fild qword [esp + 0x128]
dec esi
fstp dword [eax + ecx - 4]
jne 0x413e7c
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x10c]
imul esi, ecx
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x18]
imul esi, eax
mov edx, dword [esp + 0x68]
mov edi, dword [edi + 0x38]
add esi, edx
lea ebx, [edi + esi*4]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x4c]
add edx, esi
mov dword [esp + 0x34], esi
cmp edx, ecx
mov edi, eax
jle 0x413ee5
mov eax, ecx
cdq
idiv esi
mov eax, edi
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x40]
inc edx
imul edx, eax
mov eax, dword [esp + 0x110]
cmp edx, eax
jle 0x413eff
cdq
idiv dword [esp + 0x50]
mov edi, edx
test edi, edi
jle 0x413f65
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], edi
lea edx, [eax*4]
lea eax, [ecx*4]
lea ecx, [esi*4]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x70]
mov edx, ecx
mov esi, eax
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x34]
and ecx, 3
add ebx, edx
rep movsb byte es:[edi], byte [esi]
add eax, dword [esp + 0x78]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x44]
dec eax
mov dword [esp + 0x44], eax
jne 0x413f2f
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
add edx, ecx
mov ecx, dword [esp + 0x3c]
inc eax
cmp eax, ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
jl 0x413d56
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x88]
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0xc]
inc ecx
cmp ecx, eax
mov dword [esp + 0x40], ecx
jl 0x413d3e
mov edx, dword [esp + 0x2c]
push edx
call sub.MFC42.DLL_operatordelete
push edi
call sub.MFC42.DLL_operatordelete
mov esi, dword [esp + 0x114]
lea eax, [esi*4 + 0x20]
push eax
call sub.MFC42.DLL_operatornew
mov ebx, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x30], eax
mov ecx, dword [ebx + 0x34]
mov eax, dword [ebx + 0x38]
dec ecx
mov dword [esp + 0xc], eax
imul ecx, dword [ebx + 0x30]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x110]
mov dword [esp + 0x3c], edx
cdq
sub eax, edx
sar eax, 1
test eax, eax
jle 0x41425b
lea ecx, [esi*4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], ecx
mov ecx, dword [ebx + 0x30]
mov edi, dword [esp + 0x30]
shl ecx, 2
mov edx, ecx
mov esi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x30]
mov esi, dword [esp + 0x3c]
shl ecx, 2
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x30]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x3c]
shl ecx, 2
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x3c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x34]
add eax, ecx
sub edx, ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x3c], edx
dec ecx
mov dword [esp + 0x48], ecx
jne 0x414018
jmp 0x41425b
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x10c]
mov ecx, dword [esi + 0x34]
mov eax, dword [esi + 0x30]
dec ecx
mov edx, dword [esi + 0x38]
imul ecx, eax
lea ecx, [edx + ecx*4]
lea edx, [eax*4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x54]
shr ecx, 3
mov eax, ebx
mov dword [esp + 0x8c], edx
imul eax, ecx
mov dword [esp + 0xc], eax
add eax, 8
push eax
mov dword [esp + 0x64], ecx
call sub.MFC42.DLL_operatornew
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0x34]
add esp, 4
mov dword [esp + 0x34], 0
test eax, eax
jle 0x41424a
mov eax, dword [esp + 0x24]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
test eax, eax
je 0x41410a
mov ecx, dword [esp + 0x68]
xor edx, edx
mov eax, dword [ecx]
jmp 0x414128
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x60]
imul ebx
push 0
push ecx
push edx
push eax
call fcn.00430690
mov esi, dword [esp + 0x7c]
xor ecx, ecx
add eax, esi
adc edx, ecx
push 0
push edx
push eax
push edi
call fcn.00417e60
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x74]
add esp, 0x10
lea edx, [esp + 0x6c]
push 0
push edx
push eax
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x38]
dec eax
je 0x4141b7
dec eax
je 0x41416b
dec eax
jne 0x414216
mov edi, dword [esp + 0x2c]
mov ecx, ebx
rep movsd dword es:[edi], dword [esi]
jmp 0x414216
mov eax, dword [esp + 0x54]
cmp eax, 0x10
mov eax, esi
jne 0x41419d
mov ecx, dword [esp + 0x2c]
test ebx, ebx
jle 0x414216
mov edx, ebx
movsx esi, word [eax]
mov dword [esp + 0x78], esi
add eax, 2
fild dword [esp + 0x78]
add ecx, 4
dec edx
fstp dword [ecx - 4]
jne 0x414184
jmp 0x414216
test ebx, ebx
jle 0x414216
mov ecx, dword [esp + 0x2c]
mov edx, ebx
sub ecx, esi
fild dword [eax]
add eax, 4
dec edx
fstp dword [eax + ecx - 4]
jne 0x4141a9
jmp 0x414216
mov eax, dword [esp + 0x54]
cmp eax, 0x10
mov eax, esi
jne 0x4141e7
mov ecx, dword [esp + 0x2c]
test ebx, ebx
jle 0x414216
mov edx, ebx
xor esi, esi
add ecx, 4
mov si, word [eax]
add eax, 2
mov dword [esp + 0x78], esi
dec edx
fild dword [esp + 0x78]
fstp dword [ecx - 4]
jne 0x4141cc
jmp 0x414216
xor edi, edi
cmp ebx, edi
jle 0x414216
mov ecx, dword [esp + 0x2c]
mov edx, ebx
sub ecx, esi
mov esi, dword [eax]
mov dword [esp + 0x12c], edi
mov dword [esp + 0x128], esi
add eax, 4
fild qword [esp + 0x128]
dec edx
fstp dword [eax + ecx - 4]
jne 0x4141f5
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x68]
sub edx, ecx
inc eax
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x18]
add esi, 4
mov dword [esp + 0x34], eax
mov ecx, dword [edx + 0x34]
mov dword [esp + 0x68], esi
cmp eax, ecx
jl 0x4140f4
mov eax, dword [esp + 0x64]
push eax
call sub.MFC42.DLL_operatordelete
mov ebx, dword [esp + 0x1c]
add esp, 4
mov eax, dword [esp + 0x24]
test eax, eax
je 0x41426c
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x38]
imul eax, dword [ebx + 0x34]
fld dword [0x442688]
xor edx, edx
mov dword [esp + 0x38], 0x4cbebc20
test eax, eax
jle 0x4142db
fld dword [ecx]
fcomp qword [0x442680]
fnstsw ax
test ah, 1
je 0x4142ac
mov dword [ecx], 0xc7c34f80
jmp 0x4142cc
fld dword [esp + 0x38]
fcomp dword [ecx]
fnstsw ax
test ah, 0x41
jne 0x4142bf
mov eax, dword [ecx]
mov dword [esp + 0x38], eax
fcom dword [ecx]
fnstsw ax
test ah, 1
je 0x4142cc
fstp st(0)
fld dword [ecx]
mov eax, dword [ebx + 0x30]
inc edx
imul eax, dword [ebx + 0x34]
add ecx, 4
cmp edx, eax
jl 0x414295
fld st(0)
fadd dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
mov al, 1
mov dword [ebx + 0x40], ecx
fmul dword [0x442554]
fstp dword [ebx + 0x3c]
fstp dword [ebx + 0x44]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push 6
lea edx, [esp + 0x15c]
push str.DEMBIN
push edx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x4144cd
push ebx
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [ebp + 8]
push 0x44ccc0
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
mov esi, dword [sym.imp.MSVCRT.dll_fread]
mov ebx, eax
push ebx
push 1
lea ecx, [esp + 0x16c]
push 0x200
push ecx
call esi
push ebx
push 1
lea edx, [esp + 0xbc]
push 0x30
push edx
call esi
mov eax, dword [esp + 0x44]
mov ecx, 0xc
lea esi, [esp + 0xc4]
add esp, 0x2c
lea edi, [eax + 8]
rep movsd dword es:[edi], dword [esi]
fld qword [eax + 0x18]
fld st(0)
fcos
fstp qword [eax + 0x50]
fsin
fstp qword [eax + 0x58]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x4143a7
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x34]
mov dword [esi + 0x38], 0
imul eax, dword [esi + 0x30]
test eax, eax
jle 0x4143f4
lea ecx, [eax*4]
push ecx
call sub.MFC42.DLL_operatornew
mov edx, dword [esi + 0x30]
mov dword [esi + 0x38], eax
imul edx, dword [esi + 0x34]
add esp, 4
xor eax, eax
test edx, edx
jle 0x4143f4
mov ecx, dword [esi + 0x38]
inc eax
mov dword [ecx + eax*4 - 4], 0xc7c34f80
mov edx, dword [esi + 0x30]
imul edx, dword [esi + 0x34]
cmp eax, edx
jl 0x4143dd
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xc0]
mov ecx, edx
imul ecx, eax
test ecx, ecx
mov dword [esp + 0xc], ecx
jg 0x414424
push ebx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [esi + 0x38]
xor esi, esi
test edx, edx
jle 0x414463
jmp 0x414436
mov eax, dword [esp + 0xc0]
mov ecx, esi
mov edx, dword [esp + 0x18]
imul ecx, eax
push ebx
push 4
push eax
mov eax, dword [edx + 0x38]
lea ecx, [eax + ecx*4]
push ecx
call dword [sym.imp.MSVCRT.dll_fread]
mov eax, dword [esp + 0xd4]
add esp, 0x10
inc esi
cmp esi, eax
jl 0x41442f
mov ecx, dword [esp + 0xc]
test ecx, ecx
jle 0x415c0b
fld qword [esp + 0x58]
fld qword [esp + 0x70]
fld dword [edi]
fcomp qword [0x442680]
fnstsw ax
test ah, 0x41
jne 0x4144b4
fld dword [esp + 0x24]
fcomp dword [edi]
fnstsw ax
test ah, 0x41
jne 0x414495
mov edx, dword [edi]
mov dword [esp + 0x24], edx
fld dword [esp + 0x20]
fcomp dword [edi]
fnstsw ax
test ah, 1
je 0x4144a8
mov eax, dword [edi]
mov dword [esp + 0x20], eax
fld dword [edi]
faddp st(2)
fadd qword [0x4425f8]
jmp 0x4144ba
mov dword [edi], 0xc7c34f80
add edi, 4
dec ecx
jne 0x414473
fstp qword [esp + 0x70]
fstp qword [esp + 0x58]
jmp 0x415c0b
xor ecx, ecx
mov dword [esp + 0x80], ecx
push ecx
push 8
push ebx
mov dword [esp + 0x90], ecx
call dword [sym.imp.MSVCRT.dll_fseek]
mov edi, dword [sym.imp.MSVCRT.dll_fscanf]
lea edx, [esp + 0x8c]
push edx
push 0x44ccbc
push ebx
call edi
lea eax, [esp + 0x98]
push 0x44ccb8
push eax
mov byte [esp + 0xa3], 0
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 0x20
test eax, eax
je 0x41468e
lea ecx, [esp + 0x80]
push 0x44ccb4
push ecx
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
je 0x41468e
lea edx, [esp + 0x80]
push 0x44ccb0
push edx
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
je 0x41468e
lea eax, [esp + 0x80]
push 0x44ccac
push eax
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
je 0x41468e
push 0
push 0
push ebx
call dword [sym.imp.MSVCRT.dll_fseek]
push ebx
lea ecx, [esp + 0x168]
push 0x200
push ecx
call esi
mov al, byte [esp + 0x170]
add esp, 0x18
cmp al, 0xa
jne 0x4145c4
push ebx
lea edx, [esp + 0x15c]
push 0x200
push edx
call esi
mov al, byte [esp + 0x164]
add esp, 0xc
cmp al, 0xa
je 0x4145a6
lea ecx, [esp + 0x158]
push str.SDTF
push ecx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x4157fb
lea edx, [esp + 0x158]
push str.DataMark
push edx
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0x3c], 0x42c80000
mov dword [esp + 0x68], 0
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x415536
lea eax, [esp + 0x158]
push 0x3a
push eax
call dword [sym.imp.MSVCRT.dll_strchr]
mov edi, eax
add esp, 8
test edi, edi
je 0x4154ee
lea ecx, [esp + 0x158]
push str.Alpha
push ecx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x41532d
inc edi
push edi
call dword [sym.imp.MSVCRT.dll_atof]
fstp qword [esp + 0xac]
add esp, 4
jmp 0x41548c
mov esi, dword [sym.imp.MSVCRT.dll_fclose]
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0xe4]
rep stosd dword es:[edi], eax
push ebx
call esi
mov eax, dword [ebp + 8]
push 0x44ccc0
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
mov edi, dword [sym.imp.MSVCRT.dll_fread]
mov ebx, eax
push ebx
push 1
lea ecx, [esp + 0x36c]
push 8
push ecx
call edi
push ebx
push 1
lea edx, [esp + 0x384]
push 8
push edx
call edi
push ebx
push 1
lea eax, [esp + 0x39c]
push 0x100
push eax
call edi
push ebx
push 1
lea ecx, [esp + 0x4ac]
push 0x100
push ecx
call edi
add esp, 0x4c
lea edx, [esp + 0x568]
push ebx
push 1
push 0x100
push edx
call edi
push ebx
push 1
lea eax, [esp + 0x680]
push 8
push eax
call edi
push ebx
push 1
lea ecx, [esp + 0x698]
push 0x400
push ecx
call edi
push ebx
push 1
lea edx, [esp + 0xaa8]
push 8
push edx
call edi
add esp, 0x40
lea eax, [esp + 0xa78]
push ebx
push 1
push 8
push eax
call edi
push ebx
push 1
lea ecx, [esp + 0xa98]
push 8
push ecx
call edi
push ebx
push 1
lea edx, [esp + 0xab0]
push 8
push edx
call edi
push ebx
push 1
lea eax, [esp + 0xac8]
push 8
push eax
call edi
add esp, 0x40
lea ecx, [esp + 0xa98]
push ebx
push 1
push 8
push ecx
call edi
push ebx
push 1
lea edx, [esp + 0xab8]
push 8
push edx
call edi
push ebx
push 1
lea eax, [esp + 0xad0]
push 8
push eax
call edi
push ebx
push 1
lea ecx, [esp + 0xae8]
push 4
push ecx
call edi
mov eax, dword [esp + 0xaf0]
add esp, 0x40
cmp eax, 1
jge 0x4147e3
push ebx
call esi
add esp, 4
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [sym.imp.MSVCRT.dll__stricmp]
lea edx, [esp + 0x80]
push 0x44ccb0
push edx
call edi
add esp, 8
test eax, eax
je 0x414ca2
lea eax, [esp + 0x80]
push 0x44ccac
push eax
call edi
add esp, 8
test eax, eax
je 0x414ca2
mov dword [esp + 0x30], 0
fld qword [esp + 0xa80]
fadd qword [esp + 0xa70]
mov ecx, dword [esp + 0xaa0]
mov edx, dword [esp + 0xaa4]
mov eax, dword [esp + 0xaa8]
sub esp, 8
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xab4]
fstp qword [esp + 0xa0]
fld qword [esp + 0xa90]
fadd qword [esp + 0xa80]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ecx
fstp qword [esp + 0xa8]
fld qword [esp + 0xa98]
fsub qword [esp + 0xa88]
fdiv qword [esp + 0xaa8]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_ceil]
fadd qword [0x4425f8]
call sub.MSVCRT.dll__ftol
fld qword [esp + 0xaa0]
fsub qword [esp + 0xa90]
mov dword [esp + 0xc8], eax
fdiv qword [esp + 0xab0]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_ceil]
fadd qword [0x4425f8]
add esp, 8
call sub.MSVCRT.dll__ftol
mov edx, dword [esp + 0x18]
mov dword [esp + 0xc4], eax
mov ecx, 0xc
lea esi, [esp + 0x98]
lea edi, [edx + 8]
mov eax, edx
rep movsd dword es:[edi], dword [esi]
fld qword [eax + 0x18]
fld st(0)
fcos
fstp qword [eax + 0x50]
fsin
fstp qword [eax + 0x58]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x414939
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x34]
mov dword [esi + 0x38], 0
imul eax, dword [esi + 0x30]
test eax, eax
jle 0x414982
shl eax, 2
push eax
call sub.MFC42.DLL_operatornew
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x38], eax
imul ecx, dword [esi + 0x34]
add esp, 4
xor eax, eax
test ecx, ecx
jle 0x414982
mov edx, dword [esi + 0x38]
inc eax
mov dword [edx + eax*4 - 4], 0xc7c34f80
mov ecx, dword [esi + 0x30]
imul ecx, dword [esi + 0x34]
cmp eax, ecx
jl 0x41496b
push 0x1000
mov dword [esp + 0x4c], 0x400
call sub.MFC42.DLL_operatornew
mov edi, eax
mov ecx, 0x400
xor eax, eax
mov dword [esp + 0x20], edi
add esp, 4
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0xc4]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x24]
mov eax, dword [esp + 0xab0]
mov dword [esp + 0x44], 0
test eax, eax
jle 0x415313
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0xe4]
push ebx
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.MSVCRT.dll_fread]
push 1
lea ecx, [esp + 0xec]
push 4
push ecx
call edi
push ebx
push 1
lea edx, [esp + 0x104]
push 8
push edx
call edi
mov esi, dword [esp + 0x50]
add esp, 0x20
test esi, esi
je 0x414a89
fld qword [esp + 0xec]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0xec]
fsub st(1)
fmul qword [0x442678]
fst qword [esp + 0x10]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fcom qword [0x442670]
fnstsw ax
test ah, 1
jne 0x414a6c
fstp st(0)
fadd qword [0x4425f8]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fxch st(1)
fmul qword [0x442668]
fxch st(1)
fmul qword [0x442660]
faddp st(1)
fadd st(1)
fstp qword [esp + 0xec]
fstp st(0)
push ebx
push 1
lea eax, [esp + 0xfc]
push 8
push eax
call edi
add esp, 0x10
test esi, esi
je 0x414b1d
fld qword [esp + 0xf4]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0xf4]
fsub st(1)
fmul qword [0x442678]
fst qword [esp + 0x10]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fcom qword [0x442670]
fnstsw ax
test ah, 1
jne 0x414b00
fstp st(0)
fadd qword [0x4425f8]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fxch st(1)
fmul qword [0x442668]
fxch st(1)
fmul qword [0x442660]
faddp st(1)
fadd st(1)
fstp qword [esp + 0xf4]
fstp st(0)
push ebx
push 1
lea ecx, [esp + 0x104]
push 8
push ecx
call edi
add esp, 0x10
test esi, esi
je 0x414bb1
fld qword [esp + 0xfc]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0xfc]
fsub st(1)
fmul qword [0x442678]
fst qword [esp + 0x10]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fcom qword [0x442670]
fnstsw ax
test ah, 1
jne 0x414b94
fstp st(0)
fadd qword [0x4425f8]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fxch st(1)
fmul qword [0x442668]
fxch st(1)
fmul qword [0x442660]
faddp st(1)
fadd st(1)
fstp qword [esp + 0xfc]
fstp st(0)
push ebx
push 1
lea edx, [esp + 0x10c]
push 8
push edx
call edi
add esp, 0x10
test esi, esi
je 0x414c45
fld qword [esp + 0x104]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0x104]
fsub st(1)
fmul qword [0x442678]
fst qword [esp + 0x10]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fcom qword [0x442670]
fnstsw ax
test ah, 1
jne 0x414c28
fstp st(0)
fadd qword [0x4425f8]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fxch st(1)
fmul qword [0x442668]
fxch st(1)
fmul qword [0x442660]
faddp st(1)
fadd st(1)
fstp qword [esp + 0x104]
fstp st(0)
push ebx
push 1
lea eax, [esp + 0x114]
push 4
push eax
call edi
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x58]
add esp, 0x10
cmp eax, ecx
jle 0x41518c
mov ecx, dword [esp + 0x1c]
lea edx, [eax*4]
push edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x4c], eax
call sub.MFC42.DLL_operatornew
mov esi, eax
mov eax, dword [esp + 0x10]
push eax
mov dword [esp + 0x24], esi
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x114]
add esp, 8
jmp 0x415190
fld qword [esp + 0xa80]
fadd qword [esp + 0xa70]
mov dword [esp + 0x30], 1
fcom qword [0x442658]
fnstsw ax
test ah, 1
jne 0x415179
fcomp qword [0x442650]
fnstsw ax
test ah, 0x41
je 0x41517b
fld qword [esp + 0xa90]
fadd qword [esp + 0xa70]
fcom qword [0x442658]
fnstsw ax
test ah, 1
jne 0x415179
fcomp qword [0x442650]
fnstsw ax
test ah, 0x41
je 0x41517b
fld qword [esp + 0xa88]
fadd qword [esp + 0xa78]
fcom qword [0x442648]
fnstsw ax
test ah, 1
jne 0x415179
fcomp qword [0x442640]
fnstsw ax
test ah, 0x41
je 0x41517b
fld qword [esp + 0xa98]
fadd qword [esp + 0xa78]
fcom qword [0x442648]
fnstsw ax
test ah, 1
jne 0x415179
fcomp qword [0x442640]
fnstsw ax
test ah, 0x41
je 0x41517b
fld qword [esp + 0xa70]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0xa70]
fsub st(1)
fmul qword [0x442678]
fst qword [esp + 0x10]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fcom qword [0x442670]
fnstsw ax
test ah, 1
jne 0x414dcb
fstp st(0)
fadd qword [0x4425f8]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fxch st(1)
fmul qword [0x442668]
fxch st(1)
fmul qword [0x442660]
faddp st(1)
fadd st(1)
fstp qword [esp + 0xa70]
fstp st(0)
fld qword [esp + 0xa78]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0xa78]
fsub st(1)
fmul qword [0x442678]
fst qword [esp + 0x10]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fcom qword [0x442670]
fnstsw ax
test ah, 1
jne 0x414e49
fstp st(0)
fadd qword [0x4425f8]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fxch st(1)
fmul qword [0x442668]
fxch st(1)
fmul qword [0x442660]
faddp st(1)
fadd st(1)
fstp qword [esp + 0xa78]
fstp st(0)
fld qword [esp + 0xa80]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0xa80]
fsub st(1)
fmul qword [0x442678]
fst qword [esp + 0x10]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fcom qword [0x442670]
fnstsw ax
test ah, 1
jne 0x414ec7
fstp st(0)
fadd qword [0x4425f8]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fxch st(1)
fmul qword [0x442668]
fxch st(1)
fmul qword [0x442660]
faddp st(1)
fadd st(1)
fstp qword [esp + 0xa80]
fstp st(0)
fld qword [esp + 0xa88]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0xa88]
fsub st(1)
fmul qword [0x442678]
fst qword [esp + 0x10]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fcom qword [0x442670]
fnstsw ax
test ah, 1
jne 0x414f45
fstp st(0)
fadd qword [0x4425f8]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fxch st(1)
fmul qword [0x442668]
fxch st(1)
fmul qword [0x442660]
faddp st(1)
fadd st(1)
fstp qword [esp + 0xa88]
fstp st(0)
fld qword [esp + 0xa90]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0xa90]
fsub st(1)
fmul qword [0x442678]
fst qword [esp + 0x10]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fcom qword [0x442670]
fnstsw ax
test ah, 1
jne 0x414fc3
fstp st(0)
fadd qword [0x4425f8]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fxch st(1)
fmul qword [0x442668]
fxch st(1)
fmul qword [0x442660]
faddp st(1)
fadd st(1)
fstp qword [esp + 0xa90]
fstp st(0)
fld qword [esp + 0xa98]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0xa98]
fsub st(1)
fmul qword [0x442678]
fst qword [esp + 0x10]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fcom qword [0x442670]
fnstsw ax
test ah, 1
jne 0x415041
fstp st(0)
fadd qword [0x4425f8]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fxch st(1)
fmul qword [0x442668]
fxch st(1)
fmul qword [0x442660]
faddp st(1)
fadd st(1)
fstp qword [esp + 0xa98]
fstp st(0)
fld qword [esp + 0xaa0]
fmul qword [0x442638]
fst qword [esp + 0xaa0]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0xaa0]
fsub st(1)
fmul qword [0x442678]
fst qword [esp + 0x10]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fcom qword [0x442670]
fnstsw ax
test ah, 1
jne 0x4150cc
fstp st(0)
fadd qword [0x4425f8]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fxch st(1)
fmul qword [0x442668]
fxch st(1)
fmul qword [0x442660]
faddp st(1)
fadd st(1)
fstp qword [esp + 0xaa0]
fstp st(0)
fld qword [esp + 0xaa8]
fmul qword [0x442638]
fst qword [esp + 0xaa8]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0xaa8]
fsub st(1)
fmul qword [0x442678]
fst qword [esp + 0x10]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fcom qword [0x442670]
fnstsw ax
test ah, 1
jne 0x415157
fstp st(0)
fadd qword [0x4425f8]
fld qword [esp + 0x10]
fsub st(1)
fmul qword [0x442678]
fxch st(1)
fmul qword [0x442668]
fxch st(1)
fmul qword [0x442660]
faddp st(1)
fadd st(1)
fstp qword [esp + 0xaa8]
fstp st(0)
jmp 0x414825
fstp st(0)
push ebx
call esi
add esp, 4
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov esi, dword [esp + 0x1c]
push ebx
lea ecx, [eax*4]
push 1
push ecx
push esi
call edi
mov edi, dword [esp + 0x11c]
add esp, 0x10
xor edx, edx
mov ecx, esi
test edi, edi
jle 0x415218
fld qword [esp + 0x70]
fld qword [esp + 0x58]
fld dword [ecx]
fcomp qword [0x442680]
fnstsw ax
test ah, 0x41
jne 0x4151fb
fld dword [esp + 0x24]
fcomp dword [ecx]
fnstsw ax
test ah, 0x41
jne 0x4151da
mov eax, dword [ecx]
mov dword [esp + 0x24], eax
fld dword [esp + 0x20]
fcomp dword [ecx]
fnstsw ax
test ah, 1
je 0x4151ed
mov eax, dword [ecx]
mov dword [esp + 0x20], eax
fadd dword [ecx]
fxch st(1)
fadd qword [0x4425f8]
fxch st(1)
jmp 0x415208
mov dword [ecx], 0xc7c34f80
mov edi, dword [esp + 0x10c]
inc edx
add ecx, 4
cmp edx, edi
jl 0x4151b8
fstp qword [esp + 0x58]
fstp qword [esp + 0x70]
fld qword [esp + 0xf4]
fsub qword [esp + 0xa88]
fdiv qword [esp + 0xaa8]
call sub.MSVCRT.dll__ftol
fld qword [esp + 0x104]
fsub qword [esp + 0xf4]
mov dword [esp + 0xc], eax
fdiv qword [esp + 0xaa8]
fadd qword [0x4425f8]
call sub.MSVCRT.dll__ftol
fld qword [esp + 0xec]
fsub qword [esp + 0xa80]
mov esi, eax
mov dword [esp + 0x11c], esi
fdiv qword [esp + 0xaa0]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x78], eax
mov eax, edi
cdq
idiv esi
xor edx, edx
test esi, esi
jle 0x4152f0
mov esi, dword [esp + 0x1c]
lea ecx, [eax*4]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], esi
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x78]
add eax, edx
imul eax, dword [esp + 0xc0]
add eax, edi
mov edi, dword [esp + 0x18]
mov edi, dword [edi + 0x38]
lea edi, [edi + eax*4]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x11c]
and ecx, 3
inc edx
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
add esi, ecx
cmp edx, eax
mov dword [esp + 0x88], esi
jl 0x4152a1
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x44]
inc edi
push 1
mov edx, dword [esi]
mov ecx, esi
mov dword [esp + 0x48], edi
call dword [edx + 0x28]
cmp edi, dword [esp + 0xab0]
jl 0x4149cc
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x415c04
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
jmp 0x415c04
lea edx, [esp + 0x158]
push 0x44cc8c
push edx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x41535e
inc edi
push edi
call dword [sym.imp.MSVCRT.dll_atof]
fstp qword [esp + 0xdc]
add esp, 4
jmp 0x41548c
lea eax, [esp + 0x158]
push 0x44cc88
push eax
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x41538f
inc edi
push edi
call dword [sym.imp.MSVCRT.dll_atof]
fstp qword [esp + 0xcc]
add esp, 4
jmp 0x41548c
lea ecx, [esp + 0x158]
push 0x44cc84
push ecx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x4153c0
inc edi
push edi
call dword [sym.imp.MSVCRT.dll_atof]
fstp qword [esp + 0xb4]
add esp, 4
jmp 0x41548c
lea edx, [esp + 0x158]
push 0x44cc80
push edx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x4153f1
inc edi
push edi
call dword [sym.imp.MSVCRT.dll_atof]
fstp qword [esp + 0xbc]
add esp, 4
jmp 0x41548c
lea eax, [esp + 0x158]
push 0x44cc7c
push eax
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x41542a
inc edi
push edi
call dword [sym.imp.MSVCRT.dll_atof]
fadd qword [0x442630]
add esp, 4
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc4], eax
jmp 0x41548c
lea ecx, [esp + 0x158]
push 0x44cc78
push ecx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x415463
inc edi
push edi
call dword [sym.imp.MSVCRT.dll_atof]
fadd qword [0x442630]
add esp, 4
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc0], eax
jmp 0x41548c
lea edx, [esp + 0x158]
push str.Hzoom
push edx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x41548c
inc edi
push edi
call dword [sym.imp.MSVCRT.dll_atof]
fstp dword [esp + 0x38]
add esp, 4
mov ecx, dword [esp + 0x60]
push ebx
lea eax, [esp + 0x15c]
inc ecx
push 0x100
push eax
mov dword [esp + 0x6c], ecx
call esi
mov al, byte [esp + 0x164]
add esp, 0xc
cmp al, 0xa
jne 0x4154d1
push ebx
lea ecx, [esp + 0x15c]
push 0x100
push ecx
call esi
mov al, byte [esp + 0x164]
add esp, 0xc
cmp al, 0xa
je 0x4154b3
lea edx, [esp + 0x158]
push 0x3a
push edx
call dword [sym.imp.MSVCRT.dll_strchr]
mov edi, eax
add esp, 8
test edi, edi
jne 0x414659
push ebx
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [ebp + 8]
push 0x44ccec
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
mov ebx, eax
mov eax, dword [esp + 0x6c]
add esp, 0xc
mov ecx, eax
dec eax
test ecx, ecx
je 0x4155e9
lea edi, [eax + 1]
push ebx
lea edx, [esp + 0x15c]
push 0x100
push edx
call esi
add esp, 0xc
dec edi
jne 0x41551b
jmp 0x4155e9
lea eax, [esp + 0x158]
push eax
push 0x44c3dc
push ebx
call edi
lea ecx, [esp + 0x164]
push ecx
push 0x44c3dc
push ebx
call edi
lea edx, [esp + 0xc0]
push edx
push 0x44cccc
push ebx
call edi
lea eax, [esp + 0x17c]
push eax
push 0x44c3dc
push ebx
call edi
lea ecx, [esp + 0x108]
push ecx
push 0x44cccc
push ebx
call edi
lea edx, [esp + 0x104]
push edx
push 0x44cccc
push ebx
call edi
add esp, 0x48
lea eax, [esp + 0xb0]
push eax
push 0x44cccc
push ebx
call edi
lea ecx, [esp + 0xc4]
push ecx
push 0x44cccc
push ebx
call edi
lea edx, [esp + 0xdc]
push edx
push 0x44c0c4
push ebx
call edi
lea eax, [esp + 0xe4]
push eax
push 0x44c0c4
push ebx
call edi
lea ecx, [esp + 0x64]
push ecx
push 0x44cc6c
push ebx
call edi
add esp, 0x3c
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0x18]
dec edx
mov ecx, 0xc
mov dword [esp + 0xc], edx
lea edi, [eax + 8]
fild dword [esp + 0xc]
fld qword [esp + 0xa8]
fsin
lea esi, [esp + 0x98]
fmul st(1)
fmul qword [esp + 0xb8]
fadd qword [esp + 0xd8]
fstp qword [esp + 0x98]
fld qword [esp + 0xa8]
fcos
fmul st(1)
fmul qword [esp + 0xb8]
fsubr qword [esp + 0xc8]
fstp qword [esp + 0xa0]
rep movsd dword es:[edi], dword [esi]
fstp st(0)
fld qword [eax + 0x18]
fld st(0)
fcos
mov ecx, dword [eax + 0x38]
test ecx, ecx
fstp qword [eax + 0x50]
fsin
fstp qword [eax + 0x58]
je 0x415673
push ecx
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x1c]
add esp, 4
mov ecx, dword [eax + 0x34]
mov dword [eax + 0x38], 0
imul ecx, dword [eax + 0x30]
test ecx, ecx
jle 0x4156c2
lea eax, [ecx*4]
push eax
call sub.MFC42.DLL_operatornew
mov esi, dword [esp + 0x1c]
add esp, 4
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x38], eax
imul ecx, dword [esi + 0x34]
xor eax, eax
test ecx, ecx
jle 0x4156c6
mov edx, dword [esi + 0x38]
inc eax
mov dword [edx + eax*4 - 4], 0xc7c34f80
mov ecx, dword [esi + 0x30]
imul ecx, dword [esi + 0x34]
cmp eax, ecx
jl 0x4156a9
jmp 0x4156c6
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
mov edx, eax
imul edx, dword [esp + 0xc0]
test edx, edx
jg 0x4156f0
push ebx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x24]
mov eax, dword [esp + 0xc4]
lea edi, [eax - 1]
test edi, edi
jl 0x415c04
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x38], 0
test eax, eax
jle 0x4157e4
lea ecx, [esp + 0x30]
push ecx
push 0x44cc6c
push ebx
call dword [sym.imp.MSVCRT.dll_fscanf]
fld dword [esp + 0x3c]
fcomp dword [0x442628]
add esp, 0xc
fnstsw ax
test ah, 0x41
jne 0x4157b2
fld dword [esp + 0x30]
fdiv dword [esp + 0x34]
mov edx, edi
mov eax, dword [esp + 0x38]
imul edx, dword [esp + 0xc0]
fst dword [esp + 0x28]
add edx, eax
mov eax, dword [esi + 0x38]
fstp dword [eax + edx*4]
fld dword [esp + 0x24]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 0x41
jne 0x41577f
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
fld dword [esp + 0x20]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 1
je 0x415796
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], edx
fld dword [esp + 0x28]
fadd qword [esp + 0x58]
fstp qword [esp + 0x58]
fld qword [esp + 0x70]
fadd qword [0x4425f8]
fstp qword [esp + 0x70]
jmp 0x4157cc
mov eax, edi
mov ecx, dword [esp + 0x38]
imul eax, dword [esp + 0xc0]
add eax, ecx
mov ecx, dword [esi + 0x38]
mov dword [ecx + eax*4], 0xc7c34f80
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xc0]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jl 0x415721
mov edx, dword [esi]
push 1
mov ecx, esi
dec edi
call dword [edx + 0x28]
test edi, edi
jge 0x41570a
jmp 0x415c04
mov esi, dword [sym.imp.MSVCRT.dll_fclose]
push ebx
call esi
mov ecx, dword [ebp + 8]
push 0x44ccec
push ecx
call dword [sym.imp.MSVCRT.dll_fopen]
mov ebx, eax
lea edx, [esp + 0xd0]
lea eax, [esp + 0xcc]
push edx
lea ecx, [esp + 0xc8]
push eax
lea edx, [esp + 0xc4]
push ecx
lea eax, [esp + 0xc0]
push edx
lea ecx, [esp + 0xbc]
push eax
lea edx, [esp + 0xb8]
push ecx
push edx
push str._lf_lf_lf_lf_lf_d_d
push ebx
call edi
add esp, 0x30
cmp eax, 7
jge 0x415883
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x415872
push 0
push 0
push str.Invalidate_VirtuoZo_Dem_format
call sub.MFC42.DLL_AfxMessageBox
push ebx
call esi
add esp, 4
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esp + 0x18]
mov ecx, 0xc
lea esi, [esp + 0x98]
lea edi, [eax + 8]
rep movsd dword es:[edi], dword [esi]
fld qword [eax + 0x18]
fld st(0)
fcos
mov ecx, dword [eax + 0x38]
test ecx, ecx
fstp qword [eax + 0x50]
fsin
fstp qword [eax + 0x58]
je 0x4158bb
push ecx
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x1c]
add esp, 4
mov ecx, dword [eax + 0x34]
mov dword [eax + 0x38], 0
imul ecx, dword [eax + 0x30]
test ecx, ecx
jle 0x41590a
lea eax, [ecx*4]
push eax
call sub.MFC42.DLL_operatornew
mov esi, dword [esp + 0x1c]
add esp, 4
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x38], eax
imul ecx, dword [esi + 0x34]
xor eax, eax
test ecx, ecx
jle 0x41590e
mov edx, dword [esi + 0x38]
inc eax
mov dword [edx + eax*4 - 4], 0xc7c34f80
mov ecx, dword [esi + 0x30]
imul ecx, dword [esi + 0x34]
cmp eax, ecx
jl 0x4158f1
jmp 0x41590e
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
mov edx, eax
imul edx, dword [esp + 0xc0]
test edx, edx
jg 0x415938
push ebx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x24]
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x158]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x158]
push eax
push 0x44c3dc
push ebx
call dword [sym.imp.MSVCRT.dll_fscanf]
lea ecx, [esp + 0x164]
push 0x2e
push ecx
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 0x14
test eax, eax
je 0x415ab8
lea edx, [esp + 0x158]
push edx
call dword [sym.imp.MSVCRT.dll_atof]
mov eax, dword [esi + 0x38]
add esp, 4
fstp dword [eax]
mov ecx, dword [esi + 0x38]
fld dword [ecx]
fcomp qword [0x442680]
fnstsw ax
test ah, 1
je 0x4159ad
mov dword [ecx], 0xc7c34f80
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x1c], 0
test eax, eax
jle 0x415c04
mov eax, dword [esp + 0xc0]
xor edi, edi
test eax, eax
jle 0x415a94
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4159e5
test edi, edi
je 0x415a84
lea ecx, [esp + 0x28]
push ecx
push 0x44cc6c
push ebx
call dword [sym.imp.MSVCRT.dll_fscanf]
fld dword [esp + 0x34]
fcomp qword [0x442680]
add esp, 0xc
fnstsw ax
test ah, 1
je 0x415a24
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0x38]
imul edx, dword [esp + 0xc0]
add edx, edi
mov dword [eax + edx*4], 0xc7c34f80
jmp 0x415a84
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi + 0x38]
imul ecx, dword [esp + 0xc0]
fld dword [esp + 0x28]
add ecx, edi
fstp dword [edx + ecx*4]
fld dword [esp + 0x24]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 0x41
jne 0x415a53
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
fld dword [esp + 0x20]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 1
je 0x415a6a
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
fld dword [esp + 0x28]
fadd qword [esp + 0x58]
fstp qword [esp + 0x58]
fld qword [esp + 0x70]
fadd qword [0x4425f8]
fstp qword [esp + 0x70]
mov eax, dword [esp + 0xc0]
inc edi
cmp edi, eax
jl 0x4159d5
mov edi, dword [esp + 0x1c]
mov edx, dword [esi]
inc edi
push 1
mov ecx, esi
mov dword [esp + 0x20], edi
call dword [edx + 0x28]
cmp edi, dword [esp + 0xc4]
jl 0x4159c4
jmp 0x415c04
lea eax, [esp + 0x158]
push eax
call dword [sym.imp.MSVCRT.dll_atof]
fst dword [esp + 0x20]
fcomp dword [0x442624]
add esp, 4
fnstsw ax
test ah, 0x41
jne 0x415aeb
fld dword [esp + 0x1c]
fmul dword [0x442600]
mov ecx, dword [esi + 0x38]
fstp dword [ecx]
jmp 0x415af4
mov edx, dword [esi + 0x38]
mov dword [edx], 0xc7c34f80
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x40], 0
test eax, eax
jle 0x415c04
mov eax, dword [esp + 0xc0]
xor edi, edi
test eax, eax
jle 0x415be5
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x415b2c
test edi, edi
je 0x415bd5
lea eax, [esp + 0x1c]
push eax
push 0x44cc6c
push ebx
call dword [sym.imp.MSVCRT.dll_fscanf]
fld dword [esp + 0x28]
fcomp qword [0x442680]
add esp, 0xc
fnstsw ax
test ah, 0x41
jne 0x415bbd
mov ecx, dword [esp + 0x40]
mov edx, dword [esi + 0x38]
imul ecx, dword [esp + 0xc0]
fld dword [esp + 0x1c]
fmul dword [0x442600]
fst dword [esp + 0x28]
add ecx, edi
fstp dword [edx + ecx*4]
fld dword [esp + 0x24]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 0x41
jne 0x415b8a
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
fld dword [esp + 0x20]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 1
je 0x415ba1
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
fld dword [esp + 0x28]
fadd qword [esp + 0x58]
fstp qword [esp + 0x58]
fld qword [esp + 0x70]
fadd qword [0x4425f8]
fstp qword [esp + 0x70]
jmp 0x415bd5
mov edx, dword [esp + 0x40]
mov eax, dword [esi + 0x38]
imul edx, dword [esp + 0xc0]
add edx, edi
mov dword [eax + edx*4], 0xc7c34f80
mov eax, dword [esp + 0xc0]
inc edi
cmp edi, eax
jl 0x415b1c
mov edi, dword [esp + 0x40]
mov edx, dword [esi]
inc edi
push 1
mov ecx, esi
mov dword [esp + 0x44], edi
call dword [edx + 0x28]
cmp edi, dword [esp + 0xc4]
jl 0x415b0b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x2c]
push ebx
call dword [sym.imp.MSVCRT.dll_fclose]
fld qword [esp + 0x74]
fcom qword [0x4425f8]
add esp, 4
fnstsw ax
test ah, 0x41
jne 0x415c2c
fsub qword [0x4425f8]
fld qword [esp + 0x58]
fdiv st(1)
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
pop edi
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], edx
pop esi
pop ebx
fstp dword [eax + 0x3c]
fstp st(0)
mov al, 1
mov esp, ebp
pop ebp
ret 8