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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0xcc
push ebx
push ebp
push esi
push edi
push 0x4532cc
push eax
call dword [sym.imp.MSVCRT.DLL_fopen]
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x407a8e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret
push 0x2c
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
add esp, 4
test eax, eax
je 0x407aa9
mov ecx, eax
call fcn.004095e0
mov ebp, eax
test ebp, ebp
jne 0x407ab6
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret
mov edi, dword [sym.imp.MSVCRT.DLL_fseek]
push 0
push 0
push ebx
call edi
mov esi, dword [sym.imp.MSVCRT.DLL_fread]
push ebx
push 1
lea ecx, [esp + 0x48]
push 8
push ecx
mov dword [esp + 0x38], 0
call esi
mov eax, dword [esp + 0x50]
add esp, 0x1c
cmp eax, 0x7777
ja 0x408308
je 0x408214
cmp eax, 9
ja 0x407e5c
je 0x407c97
dec eax
jne 0x40831a
mov eax, dword [esp + 0x38]
cmp eax, 0x2c
jne 0x407bce
push 0
push 0
push ebx
mov dword [ebp + 0x18], 0x4444
call edi
push ebx
push 1
lea edx, [esp + 0x48]
push 8
push edx
call esi
add esp, 0x1c
test eax, eax
je 0x407c88
mov edi, dword [sym.imp.MSVCRT.DLL_ftell]
cmp dword [esp + 0x34], 9
jne 0x407b93
push ebx
push 1
lea eax, [esp + 0x3c]
push 8
push eax
call esi
add esp, 0x10
test eax, eax
je 0x407c88
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jne 0x407b8e
mov ecx, dword [esp + 0x38]
push ebp
push ecx
push ebx
call edi
add esp, 4
push eax
push ebx
call fcn.00405ce0
mov eax, dword [esp + 0x2c]
add esp, 0x10
inc eax
mov dword [esp + 0x1c], eax
jmp 0x407b4a
cmp eax, 9
je 0x407b4a
mov edx, dword [esp + 0x38]
push ebp
add edx, 8
push edx
push ebx
call edi
add esp, 4
sub eax, 8
push eax
push ebx
call fcn.00405ce0
push ebx
push 1
lea eax, [esp + 0x4c]
push 8
push eax
call esi
add esp, 0x20
test eax, eax
jne 0x407b43
push ebx
call dword [sym.imp.MSVCRT.DLL_fclose]
add esp, 4
jmp 0x4090c2
cmp eax, 4
jne 0x407c83
push 0
push 0
push ebx
mov dword [ebp + 0x18], 0x3333
call edi
push ebx
push 1
lea ecx, [esp + 0x48]
push 8
push ecx
call esi
add esp, 0x1c
test eax, eax
je 0x407c88
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x34], 0x11
jne 0x407c44
push ebx
push 1
lea edx, [esp + 0x3c]
push 8
push edx
call esi
add esp, 0x10
test eax, eax
je 0x407c88
mov eax, dword [esp + 0x34]
cmp eax, edi
jne 0x407c3f
mov eax, dword [esp + 0x38]
push ebp
push eax
push ebx
call dword [sym.imp.MSVCRT.DLL_ftell]
add esp, 4
push eax
push ebx
call fcn.00405ce0
add esp, 0x10
inc edi
jmp 0x407c07
cmp eax, 0x11
je 0x407c07
mov ecx, dword [esp + 0x38]
push ebp
add ecx, 8
push ecx
push ebx
call dword [sym.imp.MSVCRT.DLL_ftell]
add esp, 4
sub eax, 8
push eax
push ebx
call fcn.00405ce0
push ebx
push 1
lea edx, [esp + 0x4c]
push 8
push edx
call esi
add esp, 0x20
test eax, eax
jne 0x407c00
push ebx
call dword [sym.imp.MSVCRT.DLL_fclose]
add esp, 4
jmp 0x4090c2
cmp eax, 0x40
je 0x407c97
push ebx
call dword [sym.imp.MSVCRT.DLL_fclose]
add esp, 4
jmp 0x4090c2
xor eax, eax
mov dword [ebp + 0x18], 0x4ae0
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], eax
push 0
mov dword [esp + 0x20], 0
push 0
push ebx
call edi
add esp, 0xc
push ebx
push 1
lea eax, [esp + 0x3c]
push 8
push eax
call esi
add esp, 0x10
test eax, eax
je 0x407d64
mov eax, dword [esp + 0x34]
cmp eax, 0x10
je 0x407e1e
cmp eax, 0xf
jne 0x407cf5
push 0
push ebx
call dword [sym.imp.MSVCRT.DLL_ftell]
add esp, 4
add eax, 0x10
push eax
jmp 0x407cb4
cmp eax, 9
je 0x407d1c
mov ecx, dword [esp + 0x38]
push ebp
add ecx, 8
push ecx
push ebx
call dword [sym.imp.MSVCRT.DLL_ftell]
add esp, 4
sub eax, 8
push eax
push ebx
call fcn.00405620
add esp, 0x10
jmp 0x407cba
push ebx
push 1
lea edx, [esp + 0x3c]
push 8
push edx
call esi
add esp, 0x10
test eax, eax
je 0x407d64
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x34], edi
jne 0x407d64
mov eax, dword [esp + 0x38]
push ebp
push eax
push ebx
call dword [sym.imp.MSVCRT.DLL_ftell]
add esp, 4
push eax
push ebx
call fcn.00405620
push ebx
push 1
lea ecx, [esp + 0x4c]
push 8
push ecx
inc edi
call esi
add esp, 0x20
test eax, eax
jne 0x407d33
mov edi, dword [esp + 0x40]
mov esi, dword [sym.imp.MSVCRT.DLL_fclose]
push ebx
call esi
mov eax, dword [esp + 0x34]
add esp, 4
test eax, eax
je 0x407e0d
mov edi, dword [esp + 0xe0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x30]
mov edx, ecx
mov esi, edi
mov edi, 0x457e70
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push str._s.mesh
and ecx, 3
push str.dynamic_
rep movsb byte es:[edi], byte [esi]
push 0x457e70
call dword [sym.imp.MSVCRT.DLL_strstr]
add esp, 8
push eax
call dword [sym.imp.MSVCRT.DLL_sprintf]
push 0x4532f0
push 0x457e70
call dword [sym.imp.MSVCRT.DLL_fopen]
mov ebx, eax
add esp, 0x14
test ebx, ebx
je 0x408324
push 0x4532f4
push 0
call dword [sym.imp.MSVCRT.DLL_strtok]
mov esi, dword [sym.imp.MSVCRT.DLL_fread]
mov edi, dword [sym.imp.MSVCRT.DLL_fseek]
add esp, 8
mov dword [esp + 0x30], eax
jmp 0x407ca8
push ebx
call esi
push edi
call sub.MSVCRT.DLL_void___cdecl_operator_delete_void__
add esp, 8
jmp 0x4090c2
mov ecx, dword [esp + 0x38]
push ecx
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
push ebx
mov edi, eax
push 1
push 4
push edi
mov dword [esp + 0x54], edi
call esi
mov edx, dword [esp + 0x4c]
push ebx
add edx, 0xfffffffc
push 1
push edx
push edi
call esi
push 0x4532d8
push edi
call dword [sym.imp.MSVCRT.DLL_strtok]
add esp, 0x2c
mov dword [esp + 0x30], eax
jmp 0x407d68
cmp eax, 0x101
jb 0x40831a
cmp eax, 0x102
ja 0x40831a
push 0
push 0
push ebx
mov dword [ebp + 0x18], eax
call edi
push ebx
push 1
lea eax, [esp + 0x88]
push 0x68
push eax
call esi
mov ecx, dword [ebp + 4]
mov edx, dword [ebp]
push ecx
push 0x44
push edx
call fcn.004055f0
mov ecx, dword [ebp + 8]
mov dword [ebp], eax
mov eax, dword [ebp + 0xc]
push eax
push 0x12
push ecx
call fcn.004055f0
mov ecx, dword [ebp + 4]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0xc4]
inc ecx
mov dword [ebp + 4], ecx
lea edx, [eax + eax*2]
shl edx, 2
push edx
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [esp + 0xc8]
mov edi, eax
mov eax, dword [ebp]
mov dword [eax], ecx
mov eax, dword [esp + 0xc8]
lea edx, [eax + eax*4]
shl edx, 2
push edx
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp]
push ebx
mov dword [ecx + 4], eax
mov edx, dword [esp + 0xd0]
push edx
push 0xc
push edi
call esi
mov ecx, dword [esp + 0xdc]
add esp, 0x4c
xor eax, eax
test ecx, ecx
mov dword [esp + 0x18], eax
jbe 0x407f48
lea ecx, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [edi + ecx*4]
mov ecx, dword [ebp]
mov ecx, dword [ecx + 4]
lea eax, [ecx + eax*4]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov edx, dword [edx + 8]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x90]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x407f12
push edi
call sub.MSVCRT.DLL_void___cdecl_operator_delete_void__
mov eax, dword [esp + 0x94]
lea eax, [eax + eax*2]
shl eax, 2
push eax
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp]
push ebx
mov dword [ecx + 8], eax
mov eax, dword [ebp]
mov edx, dword [esp + 0x9c]
mov ecx, dword [eax + 8]
push edx
push 0xc
push ecx
call esi
mov eax, dword [esp + 0xa4]
lea edx, [eax + eax*2]
mov eax, dword [ebp]
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0xa4]
lea ecx, [eax + eax*2]
shl ecx, 1
push ecx
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov edx, dword [ebp]
push ebx
mov dword [edx + 0x10], eax
mov ecx, dword [ebp]
mov eax, dword [esp + 0xac]
mov edx, dword [ecx + 0x10]
push eax
push 6
push edx
call esi
xor eax, eax
add esp, 0x2c
mov dword [esp + 0x18], eax
mov ecx, dword [ebp]
mov edx, dword [ecx + 0xc]
test edx, edx
jbe 0x407ffe
mov ecx, dword [ecx + 0x10]
xor edx, edx
mov di, word [ecx + eax*2 + 4]
mov dx, word [ecx + eax*2]
mov word [ecx + eax*2], di
mov eax, dword [ebp]
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x18]
mov word [ecx + eax*2 + 4], dx
mov eax, dword [esp + 0x18]
add eax, 3
mov dword [esp + 0x18], eax
mov ecx, dword [ebp]
cmp eax, dword [ecx + 0xc]
jb 0x407fca
mov ecx, dword [esp + 0x90]
lea edx, [ecx*8]
push edx
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov edi, eax
mov eax, dword [esp + 0x94]
push ebx
push eax
push 8
push edi
call esi
mov ecx, dword [esp + 0xa4]
add esp, 0x14
xor eax, eax
test ecx, ecx
mov dword [esp + 0x18], eax
jbe 0x408063
mov edx, dword [ebp]
lea ecx, [edi + eax*8]
lea eax, [eax + eax*4]
mov edx, dword [edx + 4]
mov esi, dword [ecx]
mov dword [edx + eax*4 + 0xc], esi
mov ecx, dword [ecx + 4]
mov dword [edx + eax*4 + 0x10], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x90]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x408036
push edi
call sub.MSVCRT.DLL_void___cdecl_operator_delete_void__
push 0x104
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov edx, dword [ebp + 8]
push 0xa
mov dword [edx + 4], eax
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp + 8]
mov edi, 0x4532d0
push 2
push 0
mov dword [ecx + 8], eax
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebp + 8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, dword [edx + 8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
shl edx, 5
lea ecx, [eax + eax*2]
lea edi, [edx + ecx*2 + 0x68]
call dword [sym.imp.MSVCRT.DLL_fseek]
push ebx
call dword [sym.imp.MSVCRT.DLL_ftell]
mov esi, eax
sub esi, edi
push esi
mov dword [esp + 0x50], esi
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
push 0
push edi
push ebx
mov dword [esp + 0x6c], eax
call dword [sym.imp.MSVCRT.DLL_fseek]
mov edi, dword [esp + 0x6c]
push ebx
push 1
push esi
push edi
call dword [sym.imp.MSVCRT.DLL_fread]
add esp, 0x3c
mov edx, edi
test esi, esi
je 0x408175
mov eax, dword [edx]
cmp eax, 0x7364642e
jne 0x408163
test al, al
je 0x40811f
mov al, byte [edx - 1]
dec edx
test al, al
jne 0x408117
lea edi, [edx + 1]
or ecx, 0xffffffff
xor eax, eax
mov esi, dword [ebp + 8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x48], esi
mov esi, edi
mov edi, dword [esp + 0x48]
mov eax, ecx
mov edi, dword [edi + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 4]
or ecx, 0xffffffff
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [ecx + esi - 4], al
jmp 0x40816d
mov eax, dword [esp + 0x30]
inc edx
dec eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x40810a
mov edx, dword [esp + 0x40]
push edx
call sub.MSVCRT.DLL_void___cdecl_operator_delete_void__
mov ecx, dword [ebp]
xor eax, eax
add esp, 4
mov dword [ecx + 0x14], eax
mov ecx, dword [esp + 0x90]
mov dword [ebp + 0xc], 1
cmp ecx, eax
mov dword [esp + 0x18], eax
jbe 0x408205
mov edx, dword [ebp]
lea eax, [eax + eax*4]
mov ecx, dword [edx + 4]
fld dword [ecx + eax*4]
fmul dword [0x44dcf4]
lea eax, [ecx + eax*4]
fstp dword [eax]
mov edx, dword [ebp]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + 4]
lea eax, [eax + eax*4]
fld dword [ecx + eax*4 + 4]
fmul dword [0x44dcf4]
lea eax, [ecx + eax*4 + 4]
fstp dword [eax]
mov edx, dword [ebp]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + 4]
lea eax, [eax + eax*4]
fld dword [ecx + eax*4 + 8]
fmul dword [0x44dcf4]
lea eax, [ecx + eax*4 + 8]
fstp dword [eax]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x90]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x4081a0
push ebx
call dword [sym.imp.MSVCRT.DLL_fclose]
add esp, 4
jmp 0x4090c2
push 0
push 8
push ebx
mov dword [ebp + 0x18], 0x7777
call edi
add esp, 0xc
push ebx
push 1
lea edx, [esp + 0x3c]
push 8
push edx
call esi
mov eax, dword [esp + 0x44]
add esp, 0x10
cmp eax, 0x910
jne 0x4082b3
push ebx
push 1
lea eax, [esp + 0x3c]
push 8
push eax
call esi
push ebx
call dword [sym.imp.MSVCRT.DLL_ftell]
mov ecx, dword [esp + 0x30]
mov edi, eax
mov eax, dword [esp + 0x48]
add esp, 0x14
cmp eax, ecx
jne 0x4082ad
mov ecx, dword [esp + 0x38]
push ebp
push ecx
push edi
push ebx
call fcn.00406cc0
mov edx, dword [esp + 0x2c]
push 0
inc edx
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x4c]
add edi, edx
push edi
push ebx
call dword [sym.imp.MSVCRT.DLL_fseek]
push ebx
push 1
lea eax, [esp + 0x58]
push 8
push eax
call esi
push ebx
call dword [sym.imp.MSVCRT.DLL_ftell]
mov ecx, dword [esp + 0x4c]
mov edi, eax
mov eax, dword [esp + 0x64]
add esp, 0x30
cmp eax, ecx
je 0x408263
mov edi, dword [sym.imp.MSVCRT.DLL_fseek]
cmp eax, 0x905
jb 0x4082c1
cmp eax, 0x907
jbe 0x4082dc
push ebx
call dword [sym.imp.MSVCRT.DLL_ftell]
mov edx, dword [esp + 0x3c]
push 0
add eax, edx
push eax
push ebx
call edi
add esp, 0x10
jmp 0x408225
mov ecx, dword [esp + 0x38]
push ebp
add ecx, 8
push ecx
push ebx
call dword [sym.imp.MSVCRT.DLL_ftell]
add esp, 4
sub eax, 8
push eax
push ebx
call fcn.00406cc0
push ebx
call dword [sym.imp.MSVCRT.DLL_fclose]
add esp, 0x14
jmp 0x4090c2
cmp eax, 0x20534444
je 0x408c6a
cmp eax, 0x5344000e
je 0x408331
push ebx
call dword [sym.imp.MSVCRT.DLL_fclose]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret
push 0
push 0x10
push ebx
mov dword [ebp + 0x18], 0x5344000e
call edi
push ebx
push 1
lea edx, [esp + 0x34]
push 2
push edx
call esi
push ebx
call dword [sym.imp.MSVCRT.DLL_ftell]
mov dword [esp + 0x64], eax
push ebx
push 1
lea eax, [esp + 0x3c]
push 4
push eax
call esi
mov eax, dword [esp + 0x44]
add esp, 0x30
and eax, 0xffffff
mov dword [esp + 0x14], eax
cmp eax, 0x362e30
mov eax, dword [esp + 0x20]
jne 0x408384
add eax, 4
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x44]
and eax, 0xffff
add eax, edx
push 0
push eax
push ebx
call edi
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp eax, 0x362e30
push ebx
push 1
je 0x4083d9
lea ecx, [esp + 0x28]
push 2
push ecx
call esi
push ebx
call dword [sym.imp.MSVCRT.DLL_ftell]
mov edx, dword [esp + 0x34]
push 0
and edx, 0xffff
add eax, edx
push eax
push ebx
call edi
push ebx
push 1
lea eax, [esp + 0x70]
push 1
push eax
call esi
add esp, 0x30
jmp 0x408416
lea ecx, [esp + 0x50]
push 1
push ecx
call esi
push ebx
push 1
lea edx, [esp + 0x2b]
push 1
push edx
call esi
push ebx
push 1
lea eax, [esp + 0x48]
push 2
push eax
call esi
push ebx
call dword [sym.imp.MSVCRT.DLL_ftell]
mov ecx, dword [esp + 0x54]
push 0
and ecx, 0xffff
add eax, ecx
push eax
push ebx
call edi
add esp, 0x40
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
push edx
push 0x44
push eax
call fcn.004055f0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push ecx
push 0x12
push edx
mov dword [ebp], eax
call fcn.004055f0
mov dword [ebp + 8], eax
push ebx
push 1
lea eax, [esp + 0x40]
push 2
push eax
call esi
mov ecx, dword [esp + 0x48]
and ecx, 0xffff
inc ecx
push ecx
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp + 0xc]
push ebx
push 1
lea edx, [ecx + ecx*8]
mov ecx, dword [ebp + 8]
mov dword [ecx + edx*2 + 8], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x54]
mov ecx, dword [ebp + 8]
and edx, 0xffff
lea eax, [eax + eax*8]
push edx
mov edx, dword [ecx + eax*2 + 8]
push edx
call esi
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x5c]
push ebx
lea eax, [eax + eax*8]
and edx, 0xffff
push 1
push 2
mov eax, dword [ecx + eax*2 + 8]
lea ecx, [esp + 0x68]
push ecx
mov byte [eax + edx], 0
call esi
mov edx, dword [esp + 0x6c]
add esp, 0x4c
and edx, 0xffff
push edx
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov edi, eax
mov eax, dword [esp + 0x24]
push ebx
and eax, 0xffff
push 1
push eax
push edi
mov dword [esp + 0x38], edi
call esi
mov eax, dword [esp + 0x34]
add esp, 0x14
xor esi, esi
and eax, 0xffff
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], eax
jbe 0x408507
mov cl, byte [edi + esi]
cmp cl, 0x2e
jne 0x4084f8
mov dword [esp + 0x40], esi
jmp 0x408502
cmp cl, 0x5c
jne 0x408502
inc esi
mov dword [esp + 0x44], esi
inc esi
cmp esi, eax
jb 0x4084ea
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
sub esi, edi
lea ecx, [esi + 1]
push ecx
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + ecx*8]
mov ecx, dword [ebp + 8]
mov dword [ecx + edx*2 + 4], eax
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 0xc]
mov ecx, esi
lea esi, [edi + edx]
mov edx, dword [ebp + 8]
lea eax, [eax + eax*8]
mov edi, dword [edx + eax*2 + 4]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
lea ecx, [eax + eax*8]
mov eax, dword [edx + ecx*2 + 4]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
sub eax, ecx
mov ecx, dword [esp + 0x44]
push edx
mov byte [eax + ecx], 0
call sub.MSVCRT.DLL_void___cdecl_operator_delete_void__
mov edi, dword [sym.imp.MSVCRT.DLL_fread]
push ebx
push 1
lea eax, [esp + 0x30]
push 2
push eax
call edi
mov esi, dword [sym.imp.MSVCRT.DLL_ftell]
push ebx
call esi
mov ecx, dword [esp + 0x3c]
push 0
and ecx, 0xffff
add eax, ecx
push eax
push ebx
call dword [sym.imp.MSVCRT.DLL_fseek]
push ebx
push 1
lea edx, [esp + 0x50]
push 2
push edx
call edi
push ebx
call esi
mov ecx, dword [esp + 0x5c]
push 0
and ecx, 0xffff
add eax, ecx
push eax
push ebx
call dword [sym.imp.MSVCRT.DLL_fseek]
add esp, 0x48
lea edx, [esp + 0x20]
push ebx
push 1
push 2
push edx
call edi
push ebx
call esi
mov ecx, dword [esp + 0x34]
push 0
and ecx, 0xffff
add eax, ecx
push eax
push ebx
call dword [sym.imp.MSVCRT.DLL_fseek]
push ebx
push 1
lea edx, [esp + 0x48]
push 2
push edx
call edi
push ebx
call esi
mov ecx, dword [esp + 0x54]
add esp, 0x34
and ecx, 0xffff
add eax, ecx
mov ecx, dword [esp + 0x14]
push 0
cmp ecx, 0x362e30
push eax
push ebx
jne 0x40862a
call dword [sym.imp.MSVCRT.DLL_fseek]
add esp, 0xc
jmp 0x408787
call dword [sym.imp.MSVCRT.DLL_fseek]
push ebx
push 1
lea edx, [esp + 0x64]
push 0x18
push edx
call dword [sym.imp.MSVCRT.DLL_fread]
fld dword [esp + 0x6c]
fmul dword [0x44dcf4]
mov eax, dword [ebp + 4]
mov edx, dword [ebp]
mov ecx, eax
lea esi, [esp + 0x6c]
shl ecx, 4
fstp dword [esp + 0x6c]
fld dword [esp + 0x70]
fmul dword [0x44dcf4]
add ecx, eax
lea edi, [edx + ecx*4 + 0x1c]
mov ecx, 6
fstp dword [esp + 0x70]
fld dword [esp + 0x74]
fmul dword [0x44dcf4]
fstp dword [esp + 0x74]
fld dword [esp + 0x78]
fmul dword [0x44dcf4]
fstp dword [esp + 0x78]
fld dword [esp + 0x7c]
fmul dword [0x44dcf4]
fstp dword [esp + 0x7c]
fld dword [esp + 0x80]
fmul dword [0x44dcf4]
fstp dword [esp + 0x80]
rep movsd dword es:[edi], dword [esi]
fld dword [esp + 0x78]
fadd dword [esp + 0x6c]
fmul dword [0x44dd74]
mov eax, dword [ebp + 4]
mov edx, dword [ebp]
mov ecx, eax
fstp dword [esp + 0x84]
fld dword [esp + 0x7c]
fadd dword [esp + 0x70]
shl ecx, 4
add ecx, eax
fmul dword [0x44dd74]
lea eax, [edx + ecx*4 + 0x34]
mov ecx, dword [esp + 0x84]
fstp dword [esp + 0x88]
fld dword [esp + 0x80]
fadd dword [esp + 0x74]
mov edx, dword [esp + 0x88]
mov dword [eax], ecx
fmul dword [0x44dd74]
mov dword [eax + 4], edx
fstp dword [esp + 0x8c]
mov ecx, dword [esp + 0x8c]
mov dword [eax + 8], ecx
fld dword [esp + 0x74]
fsub dword [esp + 0x80]
fld dword [esp + 0x70]
fsub dword [esp + 0x7c]
fld dword [esp + 0x6c]
fsub dword [esp + 0x78]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fsqrt
mov eax, dword [ebp + 4]
push ebx
mov edx, eax
shl edx, 4
add edx, eax
mov eax, dword [ebp]
fmul qword [0x44e8a0]
fstp st(3)
fstp st(0)
fstp st(0)
fstp dword [eax + edx*4 + 0x40]
call dword [sym.imp.MSVCRT.DLL_ftell]
add eax, 9
push 0
push eax
push ebx
call dword [sym.imp.MSVCRT.DLL_fseek]
add esp, 0x2c
mov eax, dword [esp + 0x14]
push ebx
cmp eax, 0x362e30
push 1
mov dword [esp + 0x24], 0
push 4
je 0x40890b
mov esi, dword [sym.imp.MSVCRT.DLL_fread]
lea ecx, [esp + 0x3c]
push ecx
call esi
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x40]
mov edx, eax
shl edx, 4
add edx, eax
mov eax, dword [ebp]
mov dword [eax + edx*4 + 0xc], ecx
mov edx, dword [esp + 0x40]
lea eax, [edx + edx]
push eax
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp + 4]
push ebx
mov edx, ecx
shl edx, 4
add edx, ecx
mov ecx, dword [ebp]
mov dword [ecx + edx*4 + 0x10], eax
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x48]
mov ecx, eax
shl ecx, 4
push edx
mov edx, dword [ebp]
add ecx, eax
push 2
mov eax, dword [edx + ecx*4 + 0x10]
push eax
call esi
push ebx
push 1
lea ecx, [esp + 0x48]
push 2
push ecx
call esi
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x50]
mov edx, eax
shl edx, 4
add edx, eax
mov eax, dword [ebp]
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x50]
lea edx, [eax + eax*4]
shl edx, 2
push edx
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp + 4]
add esp, 0x38
mov edx, ecx
shl edx, 4
add edx, ecx
mov ecx, dword [ebp]
mov dword [ecx + edx*4 + 4], eax
mov ecx, dword [esp + 0x1c]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x3c], eax
jbe 0x408884
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*4]
mov edx, ecx
push ebx
shl edx, 4
add edx, ecx
mov ecx, dword [ebp]
push 1
push 0xc
mov ecx, dword [ecx + edx*4 + 4]
lea edx, [ecx + eax*4]
push edx
call esi
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x2c]
add esp, 0x10
inc eax
cmp eax, ecx
mov dword [esp + 0x3c], eax
jb 0x408851
lea eax, [ecx + ecx*2]
shl eax, 2
push eax
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp + 4]
push ebx
mov edx, ecx
shl edx, 4
add edx, ecx
mov ecx, dword [ebp]
mov dword [ecx + edx*4 + 8], eax
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x24]
mov ecx, eax
shl ecx, 4
push edx
mov edx, dword [ebp]
add ecx, eax
push 0xc
mov eax, dword [edx + ecx*4 + 8]
push eax
call esi
mov ecx, dword [esp + 0x30]
add esp, 0x14
xor eax, eax
test ecx, ecx
mov dword [esp + 0x3c], eax
jbe 0x408a6f
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*4]
mov edx, ecx
push ebx
shl edx, 4
add edx, ecx
mov ecx, dword [ebp]
push 1
push 8
mov ecx, dword [ecx + edx*4 + 4]
lea edx, [ecx + eax*4 + 0xc]
push edx
call esi
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x2c]
add esp, 0x10
inc eax
cmp eax, ecx
mov dword [esp + 0x3c], eax
jb 0x4088d2
jmp 0x408a6f
mov esi, dword [sym.imp.MSVCRT.DLL_fread]
lea eax, [esp + 0x48]
push eax
call esi
push ebx
push 1
lea ecx, [esp + 0x34]
push 4
push ecx
call esi
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x3c]
mov edx, eax
shl edx, 4
add edx, eax
mov eax, dword [ebp]
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x3c]
lea edx, [eax + eax*4]
shl edx, 2
push edx
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp + 4]
mov edx, ecx
shl edx, 4
add edx, ecx
mov ecx, dword [ebp]
mov dword [ecx + edx*4 + 4], eax
mov eax, dword [esp + 0x40]
lea edx, [eax + eax*2]
shl edx, 2
push edx
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp + 4]
push ebx
mov edx, ecx
push 1
shl edx, 4
add edx, ecx
mov ecx, dword [ebp]
push 4
mov dword [ecx + edx*4 + 8], eax
lea edx, [esp + 0x64]
push edx
call esi
mov eax, dword [ebp + 4]
mov edx, dword [ebp]
mov ecx, eax
shl ecx, 4
add ecx, eax
mov eax, dword [esp + 0x68]
mov dword [edx + ecx*4 + 0xc], eax
mov ecx, dword [esp + 0x68]
lea edx, [ecx + ecx]
push edx
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp + 4]
push ebx
mov edx, ecx
push 1
shl edx, 4
add edx, ecx
mov ecx, dword [ebp]
push 1
mov dword [ecx + edx*4 + 0x10], eax
lea edx, [esp + 0x5b]
push edx
call esi
mov ecx, dword [esp + 0x68]
add esp, 0x4c
xor eax, eax
test ecx, ecx
mov dword [esp + 0x3c], eax
jbe 0x408a50
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*4]
mov edx, ecx
push ebx
shl edx, 4
add edx, ecx
mov ecx, dword [ebp]
push 1
push 0xc
mov ecx, dword [ecx + edx*4 + 4]
lea edx, [ecx + eax*4]
push edx
call esi
mov eax, dword [ebp + 4]
mov edx, dword [ebp]
mov ecx, eax
push ebx
shl ecx, 4
add ecx, eax
mov eax, dword [esp + 0x50]
push 1
push 0xc
mov ecx, dword [edx + ecx*4 + 8]
lea eax, [eax + eax*2]
lea edx, [ecx + eax*4]
push edx
call esi
mov eax, dword [ebp + 4]
mov edx, dword [ebp]
mov ecx, eax
push ebx
shl ecx, 4
add ecx, eax
mov eax, dword [esp + 0x60]
push 1
push 8
mov ecx, dword [edx + ecx*4 + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4 + 0xc]
push edx
call esi
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x4c]
add esp, 0x30
inc eax
cmp eax, ecx
mov dword [esp + 0x3c], eax
jb 0x4089d6
mov eax, dword [esp + 0x30]
push ebx
mov edx, dword [ebp]
push eax
mov eax, dword [ebp + 4]
push 2
mov ecx, eax
shl ecx, 4
add ecx, eax
mov eax, dword [edx + ecx*4 + 0x10]
push eax
call esi
add esp, 0x10
mov ecx, dword [esp + 0x1c]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x3c], eax
jbe 0x408b08
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*4]
mov edx, ecx
shl edx, 4
add edx, ecx
mov ecx, dword [ebp]
mov ecx, dword [ecx + edx*4 + 4]
fld dword [ecx + eax*4]
fmul dword [0x44dcf4]
lea eax, [ecx + eax*4]
fstp dword [eax]
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
mov edx, eax
shl edx, 4
add edx, eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [ecx + edx*4 + 4]
lea eax, [eax + eax*4]
fld dword [ecx + eax*4 + 4]
fmul dword [0x44dcf4]
lea eax, [ecx + eax*4 + 4]
fstp dword [eax]
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
mov edx, eax
shl edx, 4
add edx, eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [ecx + edx*4 + 4]
lea eax, [eax + eax*4]
fld dword [ecx + eax*4 + 8]
fmul dword [0x44dcf4]
lea eax, [ecx + eax*4 + 8]
fstp dword [eax]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
inc eax
cmp eax, ecx
mov dword [esp + 0x3c], eax
jb 0x408a81
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0xc]
mov edx, eax
shl edx, 4
add edx, eax
mov eax, dword [ebp]
mov dword [eax + edx*4 + 0x14], ecx
mov edx, dword [ebp + 4]
mov ecx, dword [ebp + 0xc]
inc edx
mov dword [ebp + 4], edx
mov eax, edx
mov edx, dword [esp + 0x48]
inc ecx
and edx, 0xff
mov dword [ebp + 0xc], ecx
cmp eax, edx
jae 0x408205
push ebx
call dword [sym.imp.MSVCRT.DLL_ftell]
add esp, 4
mov edi, eax
push 0
push edi
push ebx
mov dword [esp + 0x50], edi
call dword [sym.imp.MSVCRT.DLL_fseek]
push ebx
push 1
lea eax, [esp + 0x2c]
push 4
push eax
call esi
add esp, 0x1c
test eax, eax
je 0x408205
cmp dword [esp + 0x18], 0x65746f6e
je 0x408b7c
inc edi
jmp 0x408b4a
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x18], 0
lea edi, [ecx - 3]
mov edx, dword [esp + 0x44]
push 0
push edx
push ebx
call dword [sym.imp.MSVCRT.DLL_fseek]
push ebx
push 1
lea eax, [esp + 0x27]
push 1
push eax
call esi
mov al, byte [esp + 0x2f]
add esp, 0x1c
test al, al
jne 0x408c39
lea ecx, [edi + 1]
push 0
push ecx
push ebx
call dword [sym.imp.MSVCRT.DLL_fseek]
push ebx
push 1
lea edx, [esp + 0x27]
push 1
push edx
call esi
mov al, byte [esp + 0x2f]
add esp, 0x1c
test al, al
jne 0x408be0
mov dword [esp + 0x18], 3
push 0
push edi
push ebx
call dword [sym.imp.MSVCRT.DLL_fseek]
push ebx
push 1
lea eax, [esp + 0x27]
push 1
push eax
call esi
mov al, byte [esp + 0x2f]
add esp, 0x1c
test al, al
jne 0x408c09
mov dword [esp + 0x18], 3
lea ecx, [edi - 1]
push 0
push ecx
push ebx
call dword [sym.imp.MSVCRT.DLL_fseek]
push ebx
push 1
lea edx, [esp + 0x27]
push 1
push edx
call esi
mov al, byte [esp + 0x2f]
add esp, 0x1c
test al, al
jne 0x408c35
mov dword [esp + 0x18], 3
inc dword [esp + 0x18]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x18]
dec edx
dec edi
cmp eax, 3
mov dword [esp + 0x44], edx
jb 0x408b8b
mov eax, edx
push 0
push eax
push ebx
call dword [sym.imp.MSVCRT.DLL_fseek]
mov esi, dword [sym.imp.MSVCRT.DLL_fread]
add esp, 0xc
jmp 0x408416
push 0
mov eax, 3
mov esi, 1
push 0xc
push ebx
mov dword [esp + 0x80], 0xbf800000
mov dword [esp + 0x84], 0xbf800000
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0x3f800000
mov dword [esp + 0x94], 0x3f800000
mov dword [esp + 0x98], 0xbf800000
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0x3f800000
mov dword [esp + 0xa4], 0x3f800000
mov dword [esp + 0xa8], 0x3f800000
mov dword [esp + 0xac], 0x3f800000
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0x3f800000
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0xbf800000
mov dword [esp + 0xc0], 0x3f800000
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0xbf800000
mov word [esp + 0x30], 0
mov word [esp + 0x32], ax
mov word [esp + 0x34], si
mov word [esp + 0x36], si
mov word [esp + 0x38], ax
mov word [esp + 0x3a], 2
call dword [sym.imp.MSVCRT.DLL_fseek]
push ebx
push esi
lea ecx, [esp + 0x5c]
push 8
push ecx
call dword [sym.imp.MSVCRT.DLL_fread]
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
push edx
push 0x44
push eax
call fcn.004055f0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push ecx
push 0x12
push edx
mov dword [ebp], eax
call fcn.004055f0
mov ecx, dword [ebp]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x68]
mov dword [ebp + 4], esi
mov dword [ebp + 0x18], eax
push 0x50
mov dword [ecx], 4
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov edx, dword [ebp]
push 0x30
mov dword [edx + 4], eax
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp]
push 0xc
mov dword [ecx + 8], eax
mov edx, dword [ebp]
mov dword [edx + 0xc], 6
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp]
lea esi, [esp + 0xb4]
add esp, 0x40
mov dword [ecx + 0x10], eax
mov edx, dword [ebp]
mov ecx, 0x14
mov edi, dword [edx + 4]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp]
mov ecx, dword [eax + 8]
add ecx, 0x24
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xc0]
mov dword [ecx], edx
mov edx, dword [esp + 0xc4]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov eax, dword [ebp]
mov eax, dword [eax + 8]
lea ecx, [eax + 0x24]
add eax, 0x18
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
mov edx, dword [ebp]
mov eax, dword [edx + 8]
lea ecx, [eax + 0x18]
add eax, 0xc
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
mov edx, dword [ebp]
mov eax, dword [edx + 8]
lea ecx, [eax + 0xc]
mov edx, dword [eax + 0xc]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
mov edx, dword [ebp]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x28]
mov dword [eax], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
jbe 0x408f67
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov edx, dword [ebp]
fild qword [esp + 0x24]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
mov edx, dword [edx + 4]
fidiv dword [esp + 0x24]
mov dword [esp + 0x28], eax
fmul dword [edx + 4]
fstp dword [edx + 4]
mov edx, dword [esp + 0x48]
mov ecx, dword [ebp]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x4c]
fild qword [esp + 0x24]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
mov ecx, dword [ecx + 4]
fidiv dword [esp + 0x24]
mov dword [esp + 0x28], eax
fmul dword [ecx + 0x18]
fstp dword [ecx + 0x18]
mov edx, dword [esp + 0x48]
mov ecx, dword [ebp]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x4c]
fild qword [esp + 0x24]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
mov ecx, dword [ecx + 4]
fidiv dword [esp + 0x24]
mov dword [esp + 0x28], eax
fmul dword [ecx + 0x2c]
fstp dword [ecx + 0x2c]
mov edx, dword [esp + 0x48]
mov ecx, dword [ebp]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x4c]
fild qword [esp + 0x24]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
mov ecx, dword [ecx + 4]
fidiv dword [esp + 0x24]
fmul dword [ecx + 0x40]
fstp dword [ecx + 0x40]
jmp 0x409015
jae 0x409015
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov edx, dword [ebp]
fild qword [esp + 0x24]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov edx, dword [edx + 4]
fidiv dword [esp + 0x24]
mov dword [esp + 0x28], ecx
fmul dword [edx]
fstp dword [edx]
mov edx, dword [esp + 0x4c]
mov eax, dword [ebp]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x48]
fild qword [esp + 0x24]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 4]
fidiv dword [esp + 0x24]
mov dword [esp + 0x28], ecx
fmul dword [eax + 0x14]
fstp dword [eax + 0x14]
mov edx, dword [esp + 0x4c]
mov eax, dword [ebp]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x48]
fild qword [esp + 0x24]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 4]
fidiv dword [esp + 0x24]
mov dword [esp + 0x28], ecx
fmul dword [eax + 0x28]
fstp dword [eax + 0x28]
mov edx, dword [esp + 0x4c]
mov eax, dword [ebp]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x48]
fild qword [esp + 0x24]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 4]
fidiv dword [esp + 0x24]
fmul dword [eax + 0x3c]
fstp dword [eax + 0x3c]
mov esi, dword [esp + 0xe0]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xfffffffc
push ecx
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp + 8]
mov edi, esi
push 0xa
mov dword [ecx + 4], eax
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebp + 8]
repne scasb al, byte es:[edi]
mov edi, dword [edx + 4]
not ecx
add ecx, 0xfffffffb
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0xe8]
or ecx, 0xffffffff
mov edx, dword [ebp + 8]
repne scasb al, byte es:[edi]
mov eax, dword [edx + 4]
not ecx
dec ecx
mov byte [ecx + eax - 4], 0
call sub.MSVCRT.DLL_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp + 8]
mov edi, str.default
push ebx
mov dword [ecx + 8], eax
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebp + 8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [edx + 8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp]
mov dword [ecx + 0x14], 0
mov dword [ebp + 0xc], 1
call dword [sym.imp.MSVCRT.DLL_fclose]
add esp, 0xc
mov eax, dword [ebp + 0x18]
cmp eax, 0x7777
je 0x4090d7
cmp eax, 0x4ae0
jne 0x409430
xor edx, edx
mov dword [esp + 0x14], edx
mov eax, dword [ebp + 4]
test eax, eax
jbe 0x409430
mov ecx, edx
shl ecx, 4
add ecx, edx
mov edx, dword [ebp]
shl ecx, 2
mov edx, dword [ecx + edx + 4]
mov eax, edx
mov esi, dword [eax]
mov dword [esp + 0x5c], esi
mov esi, dword [eax + 4]
mov dword [esp + 0x60], esi
mov eax, dword [eax + 8]
mov dword [esp + 0x64], eax
mov eax, edx
mov esi, dword [eax]
mov dword [esp + 0x50], esi
mov esi, dword [eax + 4]
mov dword [esp + 0x54], esi
xor esi, esi
mov eax, dword [eax + 8]
mov dword [esp + 0x18], esi
mov dword [esp + 0x58], eax
mov eax, dword [ebp]
cmp dword [ecx + eax], 0
jbe 0x4091c6
fld dword [edx]
fcomp dword [esp + 0x50]
fnstsw ax
test ah, 1
je 0x40914b
mov eax, dword [edx]
mov dword [esp + 0x50], eax
fld dword [edx + 4]
fcomp dword [esp + 0x54]
fnstsw ax
test ah, 1
je 0x409160
mov eax, dword [edx + 4]
mov dword [esp + 0x54], eax
fld dword [edx + 8]
fcomp dword [esp + 0x58]
fnstsw ax
test ah, 1
je 0x409175
mov eax, dword [edx + 8]
mov dword [esp + 0x58], eax
fld dword [edx]
fcomp dword [esp + 0x5c]
fnstsw ax
test ah, 0x41
jne 0x409188
mov eax, dword [edx]
mov dword [esp + 0x5c], eax
fld dword [edx + 4]
fcomp dword [esp + 0x60]
fnstsw ax
test ah, 0x41
jne 0x40919d
mov eax, dword [edx + 4]
mov dword [esp + 0x60], eax
fld dword [edx + 8]
fcomp dword [esp + 0x64]
fnstsw ax
test ah, 0x41
jne 0x4091b2
mov eax, dword [edx + 8]
mov dword [esp + 0x64], eax
inc esi
add edx, 0x14
mov dword [esp + 0x18], esi
mov eax, dword [ebp]
cmp esi, dword [ecx + eax]
jb 0x409138
fld dword [esp + 0x5c]
fadd dword [esp + 0x50]
mov edx, dword [ebp]
fmul dword [0x44dd74]
lea eax, [ecx + edx + 0x1c]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
fstp dword [esp + 0x68]
fld dword [esp + 0x60]
fadd dword [esp + 0x54]
mov dword [eax], ecx
mov ecx, dword [esp + 0x58]
fmul dword [0x44dd74]
mov dword [eax + 4], edx
fstp dword [esp + 0x6c]
fld dword [esp + 0x64]
fadd dword [esp + 0x58]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x14]
mov edx, eax
fmul dword [0x44dd74]
shl edx, 4
add edx, eax
mov eax, dword [ebp]
fstp dword [esp + 0x70]
fld dword [esp + 0x58]
fsub dword [esp + 0x64]
fld dword [esp + 0x54]
fsub dword [esp + 0x60]
fld dword [esp + 0x50]
fsub dword [esp + 0x5c]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
lea ecx, [eax + edx*4 + 0x28]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
faddp st(1)
fld st(3)
fmul st(4)
mov dword [ecx], edx
mov edx, dword [esp + 0x64]
faddp st(1)
mov dword [ecx + 4], eax
fsqrt
mov dword [ecx + 8], edx
mov eax, dword [esp + 0x14]
mov edx, dword [ebp]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea eax, [edx + ecx*4 + 0x34]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x14]
mov edx, eax
shl edx, 4
add edx, eax
mov eax, dword [ebp]
fmul qword [0x44e8a0]
fstp st(3)
fstp st(0)
fstp st(0)
fstp dword [eax + edx*4 + 0x40]
xor eax, eax
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x14]
mov esi, dword [ebp]
mov ecx, edx
shl ecx, 4
add ecx, edx
lea ecx, [esi + ecx*4]
mov esi, dword [ecx + 0xc]
test esi, esi
jbe 0x409420
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx + 4]
mov si, word [edx + eax*2 + 4]
mov bx, word [edx + eax*2]
mov di, word [edx + eax*2 + 2]
and esi, 0xffff
lea edx, [esp + 0x24]
mov dword [esp + 0x48], ecx
lea eax, [esi + esi*4]
push edx
sub esp, 0xc
and edi, 0xffff
lea ecx, [ecx + eax*4]
mov edx, esp
sub esp, 0xc
and ebx, 0xffff
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x64]
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
lea edx, [edi + edi*4]
lea ecx, [eax + edx*4]
mov edx, esp
sub esp, 0xc
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
lea edx, [ebx + ebx*4]
lea ecx, [eax + edx*4]
mov edx, esp
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
call fcn.00405540
mov eax, dword [esp + 0x3c]
lea esi, [esi + esi*2]
mov edx, eax
lea edi, [edi + edi*2]
shl edx, 4
add edx, eax
mov eax, dword [ebp]
shl esi, 2
mov ecx, dword [eax + edx*4 + 8]
mov edx, dword [esp + 0x4c]
add ecx, esi
add esp, 0x28
mov dword [ecx], edx
mov eax, dword [esp + 0x28]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx + 8], edx
mov eax, dword [esp + 0x14]
mov edx, dword [ebp]
mov ecx, eax
shl ecx, 4
add ecx, eax
shl edi, 2
mov eax, dword [edx + ecx*4 + 8]
lea ecx, [eax + esi]
lea edx, [edi + eax]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov eax, dword [esp + 0x14]
mov edx, eax
shl edx, 4
add edx, eax
mov eax, dword [ebp]
lea ecx, [ebx + ebx*2]
mov eax, dword [eax + edx*4 + 8]
add edi, eax
lea edx, [eax + ecx*4]
mov eax, dword [edi]
mov dword [edx], eax
mov ecx, dword [edi + 4]
mov dword [edx + 4], ecx
mov eax, dword [edi + 8]
mov dword [edx + 8], eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, edx
add eax, 3
shl ecx, 4
mov dword [esp + 0x18], eax
mov esi, dword [ebp]
add ecx, edx
lea ecx, [esi + ecx*4]
cmp eax, dword [ecx + 0xc]
jb 0x4092cd
inc edx
mov dword [esp + 0x14], edx
mov eax, dword [ebp + 4]
cmp edx, eax
jb 0x4090e8
xor edi, edi
xor eax, eax
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], edi
mov dword [esp + 0x14], eax
mov ecx, dword [ebp + 4]
cmp ecx, edi
jbe 0x409481
mov ecx, dword [ebp]
mov ebx, dword [ebp + 0x10]
mov edx, eax
mov esi, dword [ebp + 0x14]
shl edx, 4
add edx, eax
mov eax, dword [ecx + edx*4]
add ebx, eax
mov dword [ebp + 0x10], ebx
mov eax, dword [esp + 0x14]
mov edx, eax
shl edx, 4
add edx, eax
mov eax, dword [ecx + edx*4 + 0xc]
add esi, eax
mov dword [ebp + 0x14], esi
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
mov ecx, dword [ebp + 4]
cmp eax, ecx
jb 0x409445
mov dword [esp + 0x14], edi
mov eax, dword [ebp + 0xc]
cmp eax, edi
jbe 0x4095b2
mov ebx, dword [sym.imp.MSVCRT.DLL_rand]
test edi, edi
je 0x409513
mov dword [esp + 0x30], 0
jbe 0x409513
mov eax, dword [ebp + 8]
lea ecx, [edi + edi*8]
mov edx, dword [eax + ecx*2 + 4]
lea ecx, [eax + ecx*2]
add eax, 4
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov esi, dword [eax]
mov eax, dword [esp + 0x48]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4094ee
test cl, cl
je 0x4094ea
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4094ee
add eax, 2
add esi, 2
test cl, cl
jne 0x4094ca
xor eax, eax
jmp 0x4094f3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov eax, dword [esp + 0x30]
je 0x4095bf
mov edx, dword [esp + 0x40]
inc eax
add edx, 0x12
cmp eax, edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], edx
jb 0x4094c0
mov edx, dword [ebp + 8]
lea ecx, [edi + edi*8]
mov dword [edx + ecx*2], 0
call ebx
and al, 0x3f
mov cl, 0xc0
sub cl, al
mov eax, dword [esp + 0x14]
lea edx, [eax + eax*8]
mov eax, dword [ebp + 8]
mov byte [eax + edx*2 + 0xc], cl
call ebx
and al, 0x3f
mov cl, 0xc0
sub cl, al
mov eax, dword [esp + 0x14]
lea edx, [eax + eax*8]
mov eax, dword [ebp + 8]
mov byte [eax + edx*2 + 0xd], cl
call ebx
and al, 0x3f
mov cl, 0xc0
sub cl, al
mov eax, dword [esp + 0x14]
lea edx, [eax + eax*8]
mov eax, dword [ebp + 8]
mov byte [eax + edx*2 + 0xe], cl
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 8]
lea ecx, [eax + eax*8]
lea eax, [edx + ecx*2]
mov cl, byte [edx + ecx*2 + 0xc]
mov byte [eax + 0xf], cl
mov eax, dword [esp + 0x14]
lea edx, [eax + eax*8]
mov eax, dword [ebp + 8]
mov cl, byte [eax + edx*2 + 0xd]
lea eax, [eax + edx*2]
mov byte [eax + 0x10], cl
mov eax, dword [esp + 0x14]
lea edx, [eax + eax*8]
mov eax, dword [ebp + 8]
mov cl, byte [eax + edx*2 + 0xe]
lea eax, [eax + edx*2]
mov byte [eax + 0x11], cl
mov edi, dword [esp + 0x14]
inc edi
mov dword [esp + 0x14], edi
mov eax, dword [ebp + 0xc]
cmp edi, eax
jb 0x409496
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret
lea ecx, [eax + eax*8]
mov eax, dword [ebp + 8]
mov edx, dword [eax + ecx*2]
mov eax, dword [esp + 0x24]
mov dword [eax], edx
jmp 0x409520