Function at 0x46f050
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x44
push 0
push 0
dec ecx
jne 0x46f058
push ebx
push esi
push edi
lea eax, [ebp - 0x94]
mov edx, dword [0x423b88]
call fcn.00403694
xor eax, eax
push ebp
push 0x470705
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x636474
mov edx, 0x84000
call fcn.00404364
lea eax, [ebp - 0x30]
mov edx, 0x47071c
call fcn.00403144
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
mov eax, dword [ebp - 0x30]
call fcn.0040341c
push eax
call sub.kernel32.dll_CreateFileA
mov dword [ebp - 0x3c], eax
push 0
push 0
push 0
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_SetFilePointer
mov al, byte [0x6049d4]
xor al, 1
mov byte [0x6049d5], al
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x20], 1
xor eax, eax
mov dword [ebp - 0x1c], eax
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
cmp dword [ebp - 4], 0
jle 0x46f4b7
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
push 0
lea eax, [ebp - 0x38]
push eax
push 4
mov eax, dword [ebp - 4]
shl eax, 7
lea eax, [eax*8 + 0x6ba474]
mov edx, dword [ebp - 8]
lea eax, [eax + edx*4 - 0x400]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
mov dx, word [ebp - 0x18]
mov ax, word [ebp - 0x14]
call fcn.0041942c
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x14]
imul dword [ebp - 0x18]
add eax, eax
add eax, 4
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
call fcn.0042ed84
lea eax, [ebp - 0x5c]
call fcn.0042dee8
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x1600
lea edx, [edx*8 + 0x636474]
lea eax, [edx + eax*8 - 0xb000]
mov edx, 0xb0
call fcn.00404364
cmp byte [0x6049d4], 0
jne 0x46f364
lea ecx, [ebp - 0xa4]
mov eax, dword [ebp - 0x24]
sar eax, 1
jns 0x46f1fe
adc eax, 0
mov dl, 1
call fcn.00424080
lea edx, [ebp - 0xa4]
imul eax, dword [ebp - 8], 0x16
imul ecx, dword [ebp - 4], 0x1600
lea ecx, [ecx*8 + 0x636474]
lea eax, [ecx + eax*8 - 0xb000]
mov ecx, dword [0x423b88]
call fcn.00403968
push 0
push 0
push 0x3f800000
push 0x3f800000
fild dword [ebp - 0x24]
add esp, 0xfffffffc
fstp dword [esp]
wait
fild dword [ebp - 0x24]
add esp, 0xfffffffc
fstp dword [esp]
wait
lea eax, [ebp - 0x144]
call fcn.0042e134
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x1600
lea edx, [edx*8 + 0x636474]
lea esi, [ebp - 0x144]
lea edi, [edx + eax*8 - 0xaff0]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x5c]
call fcn.0042f380
mov dword [ebp - 0x60], eax
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x1600
lea edx, [edx*8 + 0x636474]
lea eax, [edx + eax*8 - 0xb000]
mov edx, dword [ebp - 0x60]
call fcn.0042421c
lea eax, [ebp - 0x5c]
call fcn.00419488
push 0x40000000
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x1600
lea edx, [edx*8 + 0x636474]
lea edx, [edx + eax*8 - 0xb000]
mov eax, dword [ebp - 0x24]
sar eax, 1
jns 0x46f2de
adc eax, 0
call fcn.0042e3c0
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x1600
lea edx, [edx*8 + 0x636474]
lea eax, [edx + eax*8 - 0xb000]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0xc]
movzx eax, word [eax]
add eax, eax
mov dword [ebp - 0x148], eax
fild dword [ebp - 0x148]
fsubr dword [0x47073c]
fsub dword [0x470740]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0xc]
movzx eax, word [eax + 2]
add eax, eax
mov dword [ebp - 0x14c], eax
fild dword [ebp - 0x14c]
fsubr dword [0x470744]
fsub dword [0x470740]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 0x64]
add eax, 0x10
call fcn.0042e324
jmp 0x46f4b7
lea ecx, [ebp - 0x15c]
mov dl, 1
mov ax, word [ebp - 0x24]
call fcn.00424080
lea edx, [ebp - 0x15c]
imul eax, dword [ebp - 8], 0x16
imul ecx, dword [ebp - 4], 0x1600
lea ecx, [ecx*8 + 0x636474]
lea eax, [ecx + eax*8 - 0xb000]
mov ecx, dword [0x423b88]
call fcn.00403968
push 0
push 0
push 0x3f800000
push 0x3f800000
fild dword [ebp - 0x24]
add esp, 0xfffffffc
fstp dword [esp]
wait
fild dword [ebp - 0x24]
add esp, 0xfffffffc
fstp dword [esp]
wait
lea eax, [ebp - 0x144]
call fcn.0042e134
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x1600
lea edx, [edx*8 + 0x636474]
lea esi, [ebp - 0x144]
lea edi, [edx + eax*8 - 0xaff0]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x1600
lea edx, [edx*8 + 0x636474]
lea eax, [edx + eax*8 - 0xb000]
mov edx, dword [ebp - 0x5c]
call fcn.0042421c
push 0x3f800000
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x1600
lea edx, [edx*8 + 0x636474]
lea edx, [edx + eax*8 - 0xb000]
mov eax, dword [ebp - 0x24]
call fcn.0042e3c0
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x1600
lea edx, [edx*8 + 0x636474]
lea eax, [edx + eax*8 - 0xb000]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xc]
movzx eax, word [eax]
mov dword [ebp - 0x148], eax
fild dword [ebp - 0x148]
fsubr dword [0x47073c]
fsub dword [0x470740]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xc]
movzx eax, word [eax + 2]
mov dword [ebp - 0x14c], eax
fild dword [ebp - 0x14c]
fsubr dword [0x470744]
fsub dword [0x470740]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 0x68]
add eax, 0x10
call fcn.0042e324
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x60], eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xa
jne 0x46f0ee
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 7
jne 0x46f0e9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 9
jne 0x46f0e2
mov dword [ebp - 0x10], 9
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
cmp dword [ebp - 4], 0
jle 0x46f736
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
push 0
lea eax, [ebp - 0x38]
push eax
push 4
mov eax, dword [ebp - 4]
shl eax, 7
lea eax, [eax*8 + 0x6ba474]
mov edx, dword [ebp - 8]
lea eax, [eax + edx*4 - 0x400]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
mov dx, word [ebp - 0x18]
mov ax, word [ebp - 0x14]
call fcn.0041942c
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x14]
imul dword [ebp - 0x18]
add eax, eax
add eax, 4
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
call fcn.0042ed84
lea eax, [ebp - 0x5c]
call fcn.0042dee8
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x1600
lea edx, [edx*8 + 0x636474]
lea eax, [edx + eax*8 - 0xb000]
mov edx, 0xb0
call fcn.00404364
lea ecx, [ebp - 0x16c]
mov dl, 1
mov ax, word [ebp - 0x24]
call fcn.00424080
lea edx, [ebp - 0x16c]
imul eax, dword [ebp - 8], 0x16
imul ecx, dword [ebp - 4], 0x1600
lea ecx, [ecx*8 + 0x636474]
lea eax, [ecx + eax*8 - 0xb000]
mov ecx, dword [0x423b88]
call fcn.00403968
push 0
push 0
push 0x3f800000
push 0x3f800000
fild dword [ebp - 0x24]
add esp, 0xfffffffc
fstp dword [esp]
wait
fild dword [ebp - 0x24]
add esp, 0xfffffffc
fstp dword [esp]
wait
lea eax, [ebp - 0x144]
call fcn.0042e134
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x1600
lea edx, [edx*8 + 0x636474]
lea esi, [ebp - 0x144]
lea edi, [edx + eax*8 - 0xaff0]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x1600
lea edx, [edx*8 + 0x636474]
lea eax, [edx + eax*8 - 0xb000]
mov edx, dword [ebp - 0x5c]
call fcn.0042421c
push 0x3f800000
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x1600
lea edx, [edx*8 + 0x636474]
lea edx, [edx + eax*8 - 0xb000]
mov eax, dword [ebp - 0x24]
call fcn.0042e3c0
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x1600
lea edx, [edx*8 + 0x636474]
lea eax, [edx + eax*8 - 0xb000]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 0xc]
movzx eax, word [eax]
mov edx, 0x20
sub edx, eax
mov dword [ebp - 0x148], edx
fild dword [ebp - 0x148]
fsub dword [0x470740]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 0xc]
movzx eax, word [eax + 2]
mov edx, 0x16
sub edx, eax
mov dword [ebp - 0x14c], edx
fild dword [ebp - 0x14c]
fsub dword [0x470740]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 0x6c]
add eax, 0x10
call fcn.0042e324
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xa
jne 0x46f4f4
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xa
jne 0x46f4ef
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jne 0x46f4ea
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xc
jne 0x46f4e5
mov dword [ebp - 0x10], 1
xor eax, eax
mov dword [ebp - 0x28], eax
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
cmp dword [ebp - 4], 0
jle 0x46f9b0
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ReadFile
mov dx, word [ebp - 0x18]
mov ax, word [ebp - 0x14]
call fcn.0041942c
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x14]
imul dword [ebp - 0x18]
add eax, eax
add eax, 4
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
call fcn.0042ed84
lea eax, [ebp - 0x5c]
call fcn.0042dee8
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0xdc
lea edx, [edx*8 + 0x6bd474]
lea eax, [edx + eax*8 - 0x6e0]
mov edx, 0xb0
call fcn.00404364
lea ecx, [ebp - 0x17c]
mov dl, 1
mov ax, word [ebp - 0x24]
call fcn.00424080
lea edx, [ebp - 0x17c]
imul eax, dword [ebp - 8], 0x16
imul ecx, dword [ebp - 4], 0xdc
lea ecx, [ecx*8 + 0x6bd474]
lea eax, [ecx + eax*8 - 0x6e0]
mov ecx, dword [0x423b88]
call fcn.00403968
push 0
push 0
push 0x3f800000
push 0x3f800000
fild dword [ebp - 0x24]
add esp, 0xfffffffc
fstp dword [esp]
wait
fild dword [ebp - 0x24]
add esp, 0xfffffffc
fstp dword [esp]
wait
lea eax, [ebp - 0x144]
call fcn.0042e134
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0xdc
lea edx, [edx*8 + 0x6bd474]
lea esi, [ebp - 0x144]
lea edi, [edx + eax*8 - 0x6d0]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0xdc
lea edx, [edx*8 + 0x6bd474]
lea eax, [edx + eax*8 - 0x6e0]
mov edx, dword [ebp - 0x5c]
call fcn.0042421c
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x20]
jle 0x46f92a
mov dword [ebp - 0x58], 0x41300000
jmp 0x46f92f
xor eax, eax
mov dword [ebp - 0x58], eax
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0xdc
lea edx, [edx*8 + 0x6bd474]
lea eax, [edx + eax*8 - 0x6e0]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 0xc]
movzx eax, word [eax]
mov edx, dword [ebp - 0x1c]
shl edx, 5
sub eax, edx
neg eax
mov dword [ebp - 0x148], eax
fild dword [ebp - 0x148]
fsub dword [0x470740]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 0xc]
movzx eax, word [eax + 2]
imul edx, dword [ebp - 0x20], 0x16
sub eax, edx
neg eax
mov dword [ebp - 0x14c], eax
fild dword [ebp - 0x14c]
fsub dword [ebp - 0x58]
fsub dword [0x470740]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 0x70]
add eax, 0x10
call fcn.0042e324
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xa
jne 0x46f776
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xf
jne 0x46f771
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_CloseHandle
lea edx, [ebp - 0x5c]
mov eax, 0x470750
call fcn.0042ec80
lea ecx, [ebp - 0x94]
xor edx, edx
mov ax, 0x40
call fcn.00424080
lea eax, [ebp - 0x94]
mov edx, dword [ebp - 0x5c]
call fcn.0042421c
mov dword [ebp - 4], 1
xor eax, eax
mov dword [ebp - 8], eax
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
lea eax, [edx + eax*8 - 0x1b80]
lea edx, [ebp - 0x94]
mov ecx, dword [0x423b88]
call fcn.00403968
inc dword [ebp - 8]
cmp dword [ebp - 8], 8
jne 0x46fa0b
inc dword [ebp - 4]
cmp dword [ebp - 4], 0xa
jne 0x46fa06
mov dword [ebp - 4], 1
xor eax, eax
mov dword [ebp - 8], eax
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
lea eax, [edx + eax*8 - 0x1080]
lea edx, [ebp - 0x94]
mov ecx, dword [0x423b88]
call fcn.00403968
inc dword [ebp - 8]
cmp dword [ebp - 8], 8
jne 0x46fa53
inc dword [ebp - 4]
cmp dword [ebp - 4], 0xa
jne 0x46fa4e
lea edx, [ebp - 0x5c]
mov eax, 0x47077c
call fcn.0042ec80
lea ecx, [ebp - 0x94]
xor edx, edx
mov ax, 0x40
call fcn.00424080
lea eax, [ebp - 0x94]
mov edx, dword [ebp - 0x5c]
call fcn.0042421c
mov dword [ebp - 4], 1
xor eax, eax
mov dword [ebp - 8], eax
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
lea eax, [edx + eax*8 - 0x1600]
lea edx, [ebp - 0x94]
mov ecx, dword [0x423b88]
call fcn.00403968
inc dword [ebp - 8]
cmp dword [ebp - 8], 8
jne 0x46fac7
inc dword [ebp - 4]
cmp dword [ebp - 4], 0xa
jne 0x46fac2
lea edx, [ebp - 0x5c]
mov eax, 0x4707a8
call fcn.0042ec80
lea ecx, [ebp - 0x94]
xor edx, edx
mov ax, 0x40
call fcn.00424080
lea eax, [ebp - 0x94]
mov edx, dword [ebp - 0x5c]
call fcn.0042421c
mov dword [ebp - 4], 1
xor eax, eax
mov dword [ebp - 8], eax
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
lea eax, [edx + eax*8 - 0xb00]
lea edx, [ebp - 0x94]
mov ecx, dword [0x423b88]
call fcn.00403968
inc dword [ebp - 8]
cmp dword [ebp - 8], 8
jne 0x46fb3b
inc dword [ebp - 4]
cmp dword [ebp - 4], 0xa
jne 0x46fb36
mov dword [ebp - 4], 1
xor eax, eax
mov dword [ebp - 8], eax
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
lea eax, [edx + eax*8 - 0x580]
lea edx, [ebp - 0x94]
mov ecx, dword [0x423b88]
call fcn.00403968
inc dword [ebp - 8]
cmp dword [ebp - 8], 8
jne 0x46fb83
inc dword [ebp - 4]
cmp dword [ebp - 4], 0xa
jne 0x46fb7e
mov dword [ebp - 4], 1
mov eax, dword [ebp - 4]
shl eax, 5
mov dword [ebp - 0x1c], eax
imul eax, dword [ebp - 4], 0x16
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 8], eax
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
lea eax, [edx + eax*8 - 0x1b80]
mov dword [ebp - 0x74], eax
push 0
push 0
push 0x3f800000
push 0x3f800000
fild dword [ebp - 0x1c]
add esp, 0xfffffffc
fstp dword [esp]
wait
fild dword [ebp - 0x1c]
add esp, 0xfffffffc
fstp dword [esp]
wait
lea eax, [ebp - 0x144]
call fcn.0042e134
mov eax, dword [ebp - 0x74]
lea esi, [ebp - 0x144]
lea edi, [eax + 0x10]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
fild dword [ebp - 0x1c]
fdiv dword [0x4707cc]
fstp dword [ebp - 0x50]
wait
fild dword [ebp - 0x1c]
fdiv dword [0x4707cc]
fstp dword [ebp - 0x54]
wait
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*4]
mov edx, dword [ebp - 0x74]
lea eax, [edx + eax*8 + 0x10]
mov dword [ebp - 0x78], eax
fild dword [ebp - 8]
fmul dword [0x4707d0]
fld xword [0x4707d4]
fmulp st(1)
fdiv dword [0x4707e0]
call fcn.00402648
fstp dword [ebp - 0x44]
wait
fild dword [ebp - 8]
fmul dword [0x4707d0]
fld xword [0x4707d4]
fmulp st(1)
fdiv dword [0x4707e0]
call fcn.00402620
fstp dword [ebp - 0x40]
wait
fld dword [ebp - 0x50]
mov eax, dword [ebp - 0x78]
fsub dword [eax]
fmul dword [ebp - 0x44]
fld dword [ebp - 0x54]
mov eax, dword [ebp - 0x78]
fsub dword [eax + 4]
fmul dword [ebp - 0x40]
fsubp st(1)
fadd dword [ebp - 0x54]
fstp dword [ebp - 0x4c]
wait
fld dword [ebp - 0x50]
mov eax, dword [ebp - 0x78]
fsub dword [eax]
fmul dword [ebp - 0x40]
fld dword [ebp - 0x54]
mov eax, dword [ebp - 0x78]
fsub dword [eax + 4]
fmul dword [ebp - 0x44]
faddp st(1)
fsubr dword [ebp - 0x50]
fstp dword [ebp - 0x48]
wait
fld dword [ebp - 0x48]
fadd dword [0x4707e4]
fild dword [ebp - 0x1c]
fsubp st(1)
mov eax, dword [ebp - 0x78]
fstp dword [eax]
wait
fld dword [ebp - 0x4c]
fmul dword [0x4707e8]
fdiv dword [0x4707e4]
fadd dword [0x4707e8]
fild dword [ebp - 0x20]
fsubp st(1)
mov eax, dword [ebp - 0x78]
fstp dword [eax + 4]
wait
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jne 0x46fc56
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
mov ecx, dword [ebp - 0x74]
lea edi, [edx + eax*8 - 0x15f0]
lea esi, [ecx + 0x10]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
mov ecx, dword [ebp - 0x74]
lea edi, [edx + eax*8 - 0x1070]
lea esi, [ecx + 0x10]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
mov ecx, dword [ebp - 0x74]
lea edi, [edx + eax*8 - 0xaf0]
lea esi, [ecx + 0x10]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
mov ecx, dword [ebp - 0x74]
lea edi, [edx + eax*8 - 0x570]
lea esi, [ecx + 0x10]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
inc dword [ebp - 8]
cmp dword [ebp - 8], 8
jne 0x46fbdb
inc dword [ebp - 4]
cmp dword [ebp - 4], 0xa
jne 0x46fbc6
xor eax, eax
mov dword [ebp - 8], eax
imul eax, dword [ebp - 8], 0x16
lea eax, [eax*8 + 0x6e8134]
mov dword [ebp - 0x7c], eax
imul eax, dword [ebp - 8], 0x16
mov edx, dword [ebp - 0x7c]
lea esi, [eax*8 + 0x6e8c44]
lea edi, [edx + 0x10]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
lea eax, [eax + eax*4]
mov edx, dword [ebp - 0x7c]
lea eax, [edx + eax*8 + 0x10]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x80]
fld dword [eax]
fadd dword [0x4707ec]
mov eax, dword [ebp - 0x80]
fstp dword [eax]
wait
mov eax, dword [ebp - 0x80]
fld dword [eax + 4]
fadd dword [0x4707f0]
mov eax, dword [ebp - 0x80]
fstp dword [eax + 4]
wait
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jne 0x46fe0a
mov eax, dword [ebp - 0x7c]
imul edx, dword [ebp - 8], 0x16
lea esi, [eax + 0x10]
lea edi, [edx*8 + 0x6e86c4]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
inc dword [ebp - 8]
cmp dword [ebp - 8], 8
jne 0x46fddf
mov dword [ebp - 4], 1
xor eax, eax
mov dword [ebp - 8], eax
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
lea ecx, [edx + eax*8 - 0x15f0]
xor edx, edx
mov eax, 0xdf00
call fcn.0042e228
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
lea ecx, [edx + eax*8 - 0x1070]
xor edx, edx
mov eax, 0xff0080
call fcn.0042e228
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
lea ecx, [edx + eax*8 - 0x1b70]
xor edx, edx
mov eax, 0xffff00
call fcn.0042e228
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
lea ecx, [edx + eax*8 - 0xaf0]
xor edx, edx
mov eax, 0xdf0000
call fcn.0042e228
imul eax, dword [ebp - 8], 0x16
imul edx, dword [ebp - 4], 0x370
lea edx, [edx*8 + 0x6e70b4]
lea ecx, [edx + eax*8 - 0x570]
xor edx, edx
mov eax, 0xc4ff
call fcn.0042e228
inc dword [ebp - 8]
cmp dword [ebp - 8], 8
jne 0x46fe78
inc dword [ebp - 4]
cmp dword [ebp - 4], 0xa
jne 0x46fe73
xor eax, eax
mov dword [ebp - 0xc], eax
mov edx, 0x4707f4
lea eax, [ebp - 0x19c]
call fcn.00402734
mov eax, dword [ebp - 0xc]
mov edx, eax
shl eax, 4
add eax, edx
lea edx, [eax + 0x489430]
lea eax, [ebp - 0x19c]
mov cl, 0x1f
call fcn.00402704
lea edx, [ebp - 0x19c]
lea eax, [ebp - 0x1c0]
call fcn.00402734
mov edx, 0x470804
lea eax, [ebp - 0x1c0]
mov cl, 0x23
call fcn.00402704
lea edx, [ebp - 0x1c0]
lea eax, [ebp - 0x30]
call fcn.004031dc
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
mov eax, dword [ebp - 0x30]
call fcn.0040341c
push eax
call sub.kernel32.dll_CreateFileA
mov dword [ebp - 0x3c], eax
push 0
push 0
push 0
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_SetFilePointer
xor eax, eax
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff5
sub eax, 2
jae 0x4700b7
mov dx, 0x80
mov ax, 0x80
call fcn.0041942c
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x5c]
mov ecx, 0x8004
mov eax, dword [ebp - 0x3c]
call fcn.0042ed84
lea eax, [ebp - 0x5c]
call fcn.0042dee8
lea ecx, [ebp - 0x1d0]
mov dl, 1
mov ax, 0x80
call fcn.00424080
lea edx, [ebp - 0x1d0]
imul eax, dword [ebp - 4], 0xb0
imul ecx, dword [ebp - 0xc], 0x580
lea ecx, [ecx*8 + 0x6c34b4]
lea eax, [ecx + eax*8]
imul ecx, dword [ebp - 8], 0x16
lea eax, [eax + ecx*8]
mov ecx, dword [0x423b88]
call fcn.00403968
push 0
push 0
push 0x3f800000
push 0x3f800000
push 0x43000000
push 0x43000000
lea eax, [ebp - 0x144]
call fcn.0042e134
imul eax, dword [ebp - 4], 0xb0
imul edx, dword [ebp - 0xc], 0x580
lea edx, [edx*8 + 0x6c34b4]
lea eax, [edx + eax*8]
imul edx, dword [ebp - 8], 0x16
lea esi, [ebp - 0x144]
lea edi, [eax + edx*8 + 0x10]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
jmp 0x470170
mov dx, 0x40
mov ax, 0x40
call fcn.0041942c
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x5c]
mov ecx, 0x2004
mov eax, dword [ebp - 0x3c]
call fcn.0042ed84
lea eax, [ebp - 0x5c]
call fcn.0042dee8
lea ecx, [ebp - 0x1e0]
mov dl, 1
mov ax, 0x40
call fcn.00424080
lea edx, [ebp - 0x1e0]
imul eax, dword [ebp - 4], 0xb0
imul ecx, dword [ebp - 0xc], 0x580
lea ecx, [ecx*8 + 0x6c34b4]
lea eax, [ecx + eax*8]
imul ecx, dword [ebp - 8], 0x16
lea eax, [eax + ecx*8]
mov ecx, dword [0x423b88]
call fcn.00403968
push 0
push 0
push 0x3f800000
push 0x3f800000
push 0x42800000
push 0x42800000
lea eax, [ebp - 0x144]
call fcn.0042e134
imul eax, dword [ebp - 4], 0xb0
imul edx, dword [ebp - 0xc], 0x580
lea edx, [edx*8 + 0x6c34b4]
lea eax, [edx + eax*8]
imul edx, dword [ebp - 8], 0x16
lea esi, [ebp - 0x144]
lea edi, [eax + edx*8 + 0x10]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
imul eax, dword [ebp - 4], 0xb0
imul edx, dword [ebp - 0xc], 0x580
lea edx, [edx*8 + 0x6c34b4]
lea eax, [edx + eax*8]
imul edx, dword [ebp - 8], 0x16
lea eax, [eax + edx*8]
mov edx, dword [ebp - 0x5c]
call fcn.0042421c
imul eax, dword [ebp - 4], 0xb0
imul edx, dword [ebp - 0xc], 0x580
lea edx, [edx*8 + 0x6c34b4]
lea eax, [edx + eax*8]
imul edx, dword [ebp - 8], 0x16
lea eax, [eax + edx*8]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0xc], 0xb
jne 0x4701dc
push 0xc2420000
push 0xc26a0000
mov eax, dword [ebp - 0x84]
add eax, 0x10
call fcn.0042e324
jmp 0x470234
cmp dword [ebp - 0xc], 0xc
jne 0x4701fc
push 0xc2420000
push 0xc2520000
mov eax, dword [ebp - 0x84]
add eax, 0x10
call fcn.0042e324
jmp 0x470234
cmp dword [ebp - 0xc], 3
jne 0x47021c
push 0xc18c0000
push 0xc1940000
mov eax, dword [ebp - 0x84]
add eax, 0x10
call fcn.0042e324
jmp 0x470234
push 0xc18c0000
push 0xc2220000
mov eax, dword [ebp - 0x84]
add eax, 0x10
call fcn.0042e324
inc dword [ebp - 8]
cmp dword [ebp - 8], 8
jne 0x46ffea
inc dword [ebp - 4]
cmp dword [ebp - 4], 8
jne 0x46ffe5
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_CloseHandle
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xd
jne 0x46ff50
lea ecx, [ebp - 0x1f0]
mov dl, 1
mov ax, 0x80
call fcn.00424080
lea edx, [ebp - 0x1f0]
mov eax, 0x61d890
mov ecx, dword [0x423b88]
call fcn.00403968
lea edx, [ebp - 0x5c]
mov eax, 0x470814
call fcn.0042ec80
mov eax, 0x61d890
mov edx, dword [ebp - 0x5c]
call fcn.0042421c
lea eax, [ebp - 0x30]
mov edx, 0x47083c
call fcn.00403144
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
mov eax, dword [ebp - 0x30]
call fcn.0040341c
push eax
call sub.kernel32.dll_CreateFileA
mov dword [ebp - 0x3c], eax
push 0
push 0
push 0
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_SetFilePointer
xor eax, eax
mov dword [ebp - 4], eax
mov dx, 0x16
mov ax, 0x20
call fcn.0041942c
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x5c]
mov ecx, 0x584
mov eax, dword [ebp - 0x3c]
call fcn.0042ed84
lea eax, [ebp - 0x5c]
call fcn.0042dee8
lea ecx, [ebp - 0x200]
mov dl, 1
mov ax, 0x20
call fcn.00424080
lea edx, [ebp - 0x200]
imul eax, dword [ebp - 4], 0x16
lea eax, [eax*8 + 0x6f6844]
mov ecx, dword [0x423b88]
call fcn.00403968
push 0
push 0
push 0x3f800000
push 0x3f300000
push 0x42000000
push 0x41b00000
lea eax, [ebp - 0x144]
call fcn.0042e134
imul eax, dword [ebp - 4], 0x16
lea esi, [ebp - 0x144]
lea edi, [eax*8 + 0x6f6854]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
imul eax, dword [ebp - 4], 0x16
lea eax, [eax*8 + 0x6f6844]
mov edx, dword [ebp - 0x5c]
call fcn.0042421c
mov eax, dword [ebp - 4]
mov eax, dword [eax*4 + 0x4891b0]
shl eax, 4
mov dword [ebp - 0x148], eax
fild dword [ebp - 0x148]
fsub dword [0x470740]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 4]
imul eax, dword [eax*4 + 0x4891d4], 0xb
mov dword [ebp - 0x14c], eax
fild dword [ebp - 0x14c]
fsub dword [0x470740]
add esp, 0xfffffffc
fstp dword [esp]
wait
imul eax, dword [ebp - 4], 0x16
lea eax, [eax*8 + 0x6f6854]
call fcn.0042e324
imul eax, dword [ebp - 4], 0x16
lea ecx, [eax*8 + 0x6f6854]
xor edx, edx
mov eax, 0xc8c8c8
call fcn.0042e228
inc dword [ebp - 4]
cmp dword [ebp - 4], 8
jne 0x4702e9
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_CloseHandle
mov dx, 0x44
mov ax, 0x44
call fcn.0041942c
mov dword [0x635fb8], eax
lea ecx, [ebp - 0x210]
mov dl, 1
mov ax, 0x80
call fcn.00424080
lea edx, [ebp - 0x210]
mov eax, 0x63605c
mov ecx, dword [0x423b88]
call fcn.00403968
mov eax, dword [0x636064]
call fcn.00418c20
push 0x80
push 0xf000
mov ecx, 0x80
xor edx, edx
xor eax, eax
call fcn.00418d68
call fcn.00418cf4
xor eax, eax
mov dword [ebp - 4], eax
mov dx, 0x62
mov ax, 0x62
call fcn.0041942c
mov edx, dword [ebp - 4]
mov dword [edx*4 + 0x63606c], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x1c]
fsub dword [0x47085c]
fild dword [ebp - 0x1c]
fsub dword [0x47085c]
fmulp st(1)
fild dword [ebp - 0x20]
fsub dword [0x47085c]
fild dword [ebp - 0x20]
fsub dword [0x47085c]
fmulp st(1)
faddp st(1)
fsqrt
fstp dword [ebp - 0x58]
wait
fild dword [ebp - 4]
fsubr dword [ebp - 0x58]
fmul dword [0x470860]
fsubr dword [0x470864]
call fcn.0040267c
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jge 0x4704f0
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x4704fd
cmp dword [ebp - 0x2c], 0xf
jle 0x4704fd
mov dword [ebp - 0x2c], 0xf
mov ax, 0xf
sub ax, word [ebp - 0x2c]
shl eax, 0xc
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax*4 + 0x63606c]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.00418410
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x62
jne 0x470499
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x62
jne 0x470494
mov dx, 0x31
mov ax, 0x31
call fcn.0041942c
mov edx, dword [ebp - 4]
mov dword [edx*4 + 0x636130], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
add ecx, ecx
mov edx, dword [ebp - 0x1c]
add edx, edx
mov eax, dword [ebp - 4]
mov eax, dword [eax*4 + 0x63606c]
call fcn.0041844c
movzx ebx, ax
mov ecx, dword [ebp - 0x20]
add ecx, ecx
inc ecx
mov edx, dword [ebp - 0x1c]
add edx, edx
mov eax, dword [ebp - 4]
mov eax, dword [eax*4 + 0x63606c]
call fcn.0041844c
movzx eax, ax
add ebx, eax
mov ecx, dword [ebp - 0x20]
add ecx, ecx
mov edx, dword [ebp - 0x1c]
add edx, edx
inc edx
mov eax, dword [ebp - 4]
mov eax, dword [eax*4 + 0x63606c]
call fcn.0041844c
movzx eax, ax
add ebx, eax
mov ecx, dword [ebp - 0x20]
add ecx, ecx
inc ecx
mov edx, dword [ebp - 0x1c]
add edx, edx
inc edx
mov eax, dword [ebp - 4]
mov eax, dword [eax*4 + 0x63606c]
call fcn.0041844c
movzx eax, ax
add ebx, eax
mov dword [ebp - 0x2c], ebx
shr dword [ebp - 0x2c], 0xe
cmp dword [ebp - 0x2c], 0xa
jge 0x4705fc
push 0xffff
mov eax, dword [ebp - 4]
mov eax, dword [eax*4 + 0x636130]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.00418410
jmp 0x470613
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax*4 + 0x636130]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.00418410
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x31
jne 0x470559
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x31
jne 0x470554
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x31
jne 0x470478
push 0
push 0
push 0x3f800000
push 0x3f800000
push 0x44000000
push 0x44000000
lea eax, [ebp - 0x144]
call fcn.0042e134
lea esi, [ebp - 0x144]
mov edi, 0x61d598
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x220]
xor edx, edx
mov ax, 0x80
call fcn.00424080
lea edx, [ebp - 0x220]
mov eax, dword [ebp - 4]
add eax, eax
lea eax, [eax*8 + 0x6363c4]
mov ecx, dword [0x423b88]
call fcn.00403968
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jne 0x470676
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47070c
lea eax, [ebp - 0x220]
mov edx, dword [0x423b88]
mov ecx, 6
call fcn.0040378c
lea eax, [ebp - 0x17c]
mov edx, dword [0x423b88]
mov ecx, 3
call fcn.0040378c
lea eax, [ebp - 0xa4]
mov edx, dword [0x423b88]
mov ecx, 2
call fcn.0040378c
lea eax, [ebp - 0x30]
call fcn.004030ac
ret