Function at 0x470710
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x10
push ebx
push ebp
mov ebx, ecx
push esi
push edi
xor edi, edi
mov eax, dword [ebx + 0x20]
push 0x1e8480
mov dword [esp + 0x20], eax
mov dword [ebx + 0x20], edi
call fcn.0057a50e
add esp, 4
cmp eax, edi
mov dword [ebx + 0x10], eax
je 0x470cba
push 0x186a0
call fcn.0057a50e
mov esi, eax
add esp, 4
cmp esi, edi
mov dword [esp + 0x14], esi
je 0x470cba
push 0x8000
mov ecx, 0x1765bd0
call fcn.0046e7b0
push eax
call fcn.005829fb
mov ebp, eax
add esp, 8
cmp ebp, 0xffffffff
jne 0x470796
push esi
call fcn.0057a29c
mov ecx, dword [ebx + 0x10]
push ecx
call fcn.0057a29c
add esp, 8
mov dword [ebx + 0x10], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 4
cmp dword [0x8f1998], 5
jne 0x4707b3
mov ecx, 0x150caa0
mov dword [0x8f1998], 1
call fcn.00474480
mov ecx, 0x150caa0
call fcn.00474300
push 0xd7dc9c
push edi
push 0x401c8
mov ecx, 0xf01790
call fcn.0046c600
mov edi, 0x69663c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0xd17380
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, 9
mov esi, 0x64f200
mov edi, 0x64f224
mov dword [0xd177bc], eax
rep movsd dword es:[edi], dword [esi]
mov ecx, 0xd2c5c8
mov dword [0xd16a88], eax
call fcn.00459e70
xor esi, esi
mov eax, 0xcbf278
mov dword [0xd177e0], esi
mov dword [eax - 4], 0xffffffff
mov dword [eax], 0xffffffff
add eax, 8
cmp eax, 0xcbf2b8
jl 0x470829
mov ecx, 9
xor eax, eax
mov edi, 0xd8492c
push 4
rep stosd dword es:[edi], eax
lea edi, [ebx + 0x14]
push edi
push ebp
call fcn.0057eb00
mov eax, dword [edi]
add esp, 0xc
cmp eax, esi
jge 0x470a99
lea eax, [esp + 0x10]
push 4
push eax
push ebp
call fcn.0057eb00
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, esi
je 0x470a8d
mov ecx, dword [esp + 0x14]
push eax
push ecx
push ebp
call fcn.0057eb00
lea edx, [esp + 0x1c]
push 4
push edx
push ebp
call fcn.0057eb00
mov eax, dword [esp + 0x28]
add esp, 0x18
cmp eax, esi
je 0x470a8d
push 4
push 0xd17378
push ebp
call fcn.0057eb00
push 4
push 0xd1737c
push ebp
call fcn.0057eb00
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
add eax, 0xfffffff8
push eax
push ecx
push ebp
call fcn.0057eb00
mov edx, dword [esp + 0x38]
add esp, 0x24
mov ecx, 0x1d9d5e0
push 0xd17380
push edx
call fcn.00471590
lea eax, [esp + 0x10]
push 4
push eax
push ebp
call fcn.0057eb00
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, esi
je 0x470a8d
push 4
push 0x1764c14
push ebp
call fcn.0057eb00
push 4
push 0x1764c18
push ebp
call fcn.0057eb00
lea ecx, [esp + 0x28]
push 4
push ecx
push ebp
call fcn.0057eb00
mov eax, dword [esp + 0x34]
add esp, 0x24
cmp eax, esi
je 0x470a8d
push 4
push 0xd177c4
push ebp
call fcn.0057eb00
push 0x14
push 0xd177c8
push ebp
call fcn.0057eb00
push 4
push 0xd177dc
push ebp
call fcn.0057eb00
lea edx, [esp + 0x34]
push 4
push edx
push ebp
call fcn.0057eb00
mov eax, dword [esp + 0x40]
add esp, 0x30
cmp eax, esi
je 0x470a8d
push 4
push 0xd2b45c
push ebp
call fcn.0057eb00
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, 4
mov esi, 0xc
jle 0x4709fc
push 4
push 0xd2b460
push ebp
call fcn.0057eb00
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, 8
jle 0x4709fc
push 4
push 0xd17c88
push ebp
call fcn.0057eb00
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, esi
jle 0x4709fc
push 0x51
push 0xd17768
push ebp
call fcn.0057eb00
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, 0x5d
jle 0x4709fc
push 4
push 0xd17c94
push ebp
call fcn.0057eb00
add esp, 0xc
lea eax, [esp + 0x10]
push 4
push eax
push ebp
call fcn.0057eb00
mov eax, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
je 0x470a8b
push 4
push 0xd177bc
push ebp
call fcn.0057eb00
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, 4
jle 0x470a7b
push 4
push 0xd16a88
push ebp
call fcn.0057eb00
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, 8
jle 0x470a7b
push 4
push 0x1764c60
push ebp
call fcn.0057eb00
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, esi
jle 0x470a7b
push 4
push 0xd177e0
push ebp
call fcn.0057eb00
push 0x40
push 0xcbf274
push ebp
call fcn.0057eb00
add esp, 0x18
lea ecx, [esp + 0x10]
push 4
push ecx
push ebp
call fcn.0057eb00
add esp, 0xc
xor esi, esi
push 4
push edi
push ebp
call fcn.0057eb00
add esp, 0xc
mov eax, dword [edi]
cmp eax, 0x7f4
jne 0x470ac0
lea edx, [ebx + 0xbfc]
push 0x7f0
push edx
push ebp
call fcn.0057eb00
add esp, 0xc
mov ecx, ebx
call fcn.00470ea0
jmp 0x470ad1
add eax, 0xfffffffc
push eax
lea eax, [ebx + 0x24]
push eax
push ebp
call fcn.0057eb00
add esp, 0xc
mov ecx, dword [ebx + 0x24]
mov edx, dword [ebx + 0x10]
push ecx
push edx
push ebp
call fcn.0057eb00
push ebp
call fcn.0057e83c
add esp, 0x10
lea eax, [esp + 0x18]
mov ecx, 0x1765bd0
mov dword [0xd17378], esi
push eax
call fcn.0046e7d0
push eax
call fcn.00471a50
mov eax, dword [esp + 0x20]
add esp, 8
cmp eax, esi
je 0x470b1d
mov dword [0xd17378], 1
mov dword [0xd1737c], eax
mov ebp, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x2c]
cmp ebp, esi
mov dword [ebx + 4], ecx
je 0x470b32
push 0x32
call ebp
add esp, 4
mov eax, dword [ebx + 0x28]
mov edx, dword [esp + 0x24]
cmp eax, esi
mov dword [ebx + 0xc], esi
mov dword [ebx + 0x24], esi
mov dword [esp + 0x24], edx
jle 0x470c21
mov eax, dword [ebx + 0xc]
mov edi, dword [esp + 0x24]
cmp dword [ebx + eax*4 + 0x4f0], 0x447
jne 0x470b6f
cmp dword [ebx + eax*4 + 0x40], 4
jle 0x470b6f
inc eax
mov dword [ebx + 0xc], eax
jmp 0x470c18
cmp eax, 0x96
jge 0x470b9c
mov ecx, dword [edi]
mov dword [ebx + 0x18], ecx
mov edx, dword [edi + 8]
cmp ecx, esi
mov dword [ebx + 0x1c], edx
jbe 0x470b9c
movsx ecx, word [edi + 0xe]
cmp dword [ebx + eax*4 + 0x4f0], ecx
je 0x470b9c
add edi, 0x10
cmp eax, 0x96
jl 0x470b76
mov ecx, dword [ebx + 0x18]
cmp ecx, esi
jbe 0x470bed
cmp dword [edi + 4], esi
jne 0x470bed
cmp dword [ebx + eax*4 + 0x748], esi
je 0x470bd0
cmp dword [ebx + 8], esi
jne 0x470bd0
mov edx, dword [ebx + eax*4 + 0x9a0]
push ecx
mov ecx, dword [ebx + 0x10]
add edx, ecx
mov ecx, 0x1d9d5e0
push edx
call fcn.00471590
jmp 0x470bed
mov edx, dword [ebx + eax*4 + 0x9a0]
mov eax, dword [ebx + eax*4 + 0x40]
push ecx
mov ecx, dword [ebx + 0x10]
add edx, ecx
mov ecx, 0xf01790
push edx
push eax
call fcn.0046c5d0
cmp ebp, esi
je 0x470c11
mov ecx, dword [ebx + 0xc]
lea eax, [ecx + ecx*2]
shl eax, 5
sub eax, ecx
mov ecx, dword [ebx + 0x28]
lea eax, [eax + eax*4]
shl eax, 1
cdq
dec ecx
idiv ecx
add eax, 0x32
push eax
call ebp
add esp, 4
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
cmp eax, dword [ebx + 0x28]
jl 0x470b4b
mov edx, dword [ebx + 0x10]
push edx
call fcn.0057a29c
mov eax, dword [esp + 0x18]
push eax
call fcn.0057a29c
mov dword [ebx + 0x10], esi
mov eax, dword [0xd16a78]
mov ecx, dword [0xd16aa8]
add esp, 8
cmp eax, esi
mov dword [0x8f19c0], esi
mov dword [0x8f19f0], esi
mov dword [0x150fd18], 0xffffffff
mov dword [0xd16ab0], ecx
jne 0x470ca1
mov eax, dword [0xd16a50]
mov dword [0xd16a4c], 4
cmp eax, 0xf
jg 0x470c83
mov dword [0xd16a4c], 3
cmp eax, 0xa
jg 0x470c92
mov dword [0xd16a4c], 2
cmp eax, 5
jg 0x470ca1
mov dword [0xd16a4c], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0xd17f1c]
mov dword [0x1d9d644], esi
sub eax, ecx
mov dword [0xd17f18], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 4