Function at 0x473070
Capabilities:
Get file size
Read file on windows

Disassembly:
sub esp, 0x20
mov eax, dword [0x517ff0]
push ebx
push ebp
mov ebp, dword [esp + 0x2c]
push esi
push edi
xor esi, esi
push eax
push ebp
mov dword [esp + 0x24], 0x4a2d44
mov dword [esp + 0x28], 0x4a2d48
mov dword [esp + 0x2c], 0x4a2d40
mov dword [esp + 0x30], 0x4a2d2c
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
call fcn.0045d6a0
mov edi, eax
add esp, 8
cmp edi, 0xffffffff
jne 0x4730c9
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
push ebp
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionA]
mov ebx, eax
cmp ebx, esi
jne 0x4730e0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
inc ebx
mov eax, 0x4a2d44
push eax
push ebx
call fcn.0045c4a0
add esp, 8
test eax, eax
jne 0x4730fd
mov eax, dword [esp + esi*4 + 0x20]
inc esi
test eax, eax
jne 0x4730e6
mov eax, dword [esp + esi*4 + 0x1c]
xor ebx, ebx
cmp eax, ebx
jne 0x47321f
push ebx
push 0x80
push 3
push ebx
push ebx
push bind
push ebp
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x473132
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push eax
mov dword [esp + 0x38], eax
call fcn.0048ac32
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x473160
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x18]
push ebx
push ecx
push edx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x10]
cmp edi, ebx
mov ecx, dword [eax]
jne 0x473306
cmp ecx, 0x1a53454e
jne 0x47328c
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 4]
mov dl, byte [eax + 5]
lea ecx, [edx + ecx*2]
mov dl, byte [eax + 6]
shl ecx, 0xd
test dl, 4
je 0x4731b2
add ecx, 0x200
mov edx, dword [0x52445c]
cmp edx, ebx
mov edx, dword [esp + 0x34]
jne 0x4731c7
lea esi, [edx - 0x10]
cmp ecx, esi
jbe 0x4731ca
lea ecx, [edx - 0x10]
add eax, 0x10
push ecx
push eax
call fcn.0045d8d0
mov esi, dword [esp + 0x40]
xor ecx, ecx
add esp, 8
mov dword [esi + 0xf8], eax
mov eax, dword [esp + 0x10]
mov cl, byte [eax + 4]
mov dl, byte [eax + 6]
shl ecx, 0xe
test dl, 4
je 0x4731fb
add ecx, 0x200
mov edx, dword [esp + 0x34]
add edx, 0xfffffff0
cmp edx, ecx
jb 0x47324a
add eax, 0x10
push ecx
push eax
call fcn.0045d8d0
mov dword [esi + 0xfc], eax
mov eax, dword [esp + 0x18]
add esp, 8
jmp 0x473250
mov edx, dword [0x517ff0]
lea eax, [esp + 0x34]
push edi
lea ecx, [esp + 0x14]
push eax
push ecx
push edx
push ebp
call fcn.0045d850
add esp, 0x14
test eax, eax
jne 0x47317a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
mov dword [esi + 0xfc], ebx
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 4]
mov dword [esi + 0x200], ecx
mov dl, byte [eax + 5]
mov dword [esi + 0x204], edx
mov cl, byte [eax + 6]
mov byte [esi + 0x208], cl
mov dl, byte [eax + 7]
mov ecx, 1
mov byte [esi + 0x209], dl
mov dword [esi + 0x20c], ecx
mov dword [esp + 0x14], ecx
jmp 0x473359
cmp ecx, 0x1a534446
jne 0x473359
mov ecx, dword [esp + 0x34]
mov esi, 0x4a
cmp ecx, esi
jbe 0x4732e6
mov ecx, dword [esp + 0x38]
lea ebp, [ecx + 0x100]
cmp byte [esi + eax], 3
jne 0x4732e6
xor edx, edx
mov dh, byte [esi + eax + 0xe]
mov dl, byte [esi + eax + 0xd]
lea eax, [esi + eax + 0x11]
mov edi, edx
push edi
push eax
call fcn.0045d8d0
mov dword [ebp], eax
mov eax, dword [esp + 0x3c]
add esp, 8
lea esi, [esi + edi + 0x11]
inc ebx
add ebp, 4
cmp esi, eax
mov eax, dword [esp + 0x10]
jb 0x4732af
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x14], 2
mov byte [ecx + 0x208], bl
mov dword [ecx + 0x20c], 3
xor ebx, ebx
jmp 0x473359
cmp edi, 2
jne 0x473359
mov ecx, dword [esp + 0x34]
push ecx
push eax
call fcn.0045d8d0
mov ecx, dword [esp + 0x40]
add esp, 8
mov dword [esp + 0x14], 4
mov dword [ecx + 0xf8], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 0xfc], ebx
mov dword [ecx + 0x200], ebx
mov dword [ecx + 0x204], ebx
mov byte [ecx + 0x208], 0
mov byte [ecx + 0x209], 0
mov dword [ecx + 0x20c], 7
cmp eax, ebx
je 0x473366
push eax
call fcn.0048ace4
add esp, 4
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret