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

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x104
mov eax, dword [0x4f0dd0]
push ebx
push esi
push edi
mov edi, dword [ebp + 0x7c]
xor eax, ebp
mov ebx, ecx
push 0x40
mov dword [ebp + 0x70], eax
xor esi, esi
lea eax, [ebx + 4]
push esi
push eax
call sub.MSVCR71.dll_memset
push 0x40
lea eax, [ebx + 0x58]
push esi
push eax
call sub.MSVCR71.dll_memset
add esp, 0x18
push esi
push esi
push 4
push esi
push 3
push 0xc0000000
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x8c], eax
jne 0x42524d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
inc eax
jmp 0x4254a4
push edi
lea eax, [ebx + 0x54]
push 0x4be660
push eax
call fcn.00416dd5
mov edi, dword [sym.imp.KERNEL32.dll_GetFileSize]
add esp, 0xc
push esi
push dword [ebp - 0x8c]
call edi
push esi
mov dword [ebx], eax
lea eax, [ebp - 0x90]
push eax
push 0xa
lea eax, [ebp - 0x84]
push eax
push dword [ebp - 0x8c]
mov dword [ebp - 0x90], esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 3
push 0x4be65c
lea eax, [ebp - 0x84]
push eax
mov dword [ebp - 0x88], esi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIA]
test eax, eax
jne 0x4252e1
mov ecx, dword [ebp - 0x7e]
mov al, ch
xor edx, edx
mov dl, byte [ebp - 0x7c]
and ecx, 0x7f
shl ecx, 0x15
and eax, 0x7f
shl eax, 0xe
and edx, 0x7f
shl edx, 7
or eax, edx
or eax, ecx
xor ecx, ecx
mov cl, byte [ebp - 0x7b]
and ecx, 0x7f
or eax, ecx
mov dword [ebp - 0x88], eax
push 0xffffffffffffff80
pop eax
sub eax, dword [ebp - 0x88]
push esi
push dword [ebp - 0x8c]
add dword [ebx], eax
call edi
push esi
mov edi, 0x80
push esi
sub eax, edi
push eax
push dword [ebp - 0x8c]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x425317
push 2
jmp 0x425495
push esi
lea eax, [ebp - 0x90]
push eax
push edi
lea eax, [ebp - 0x78]
push eax
push dword [ebp - 0x8c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
push 3
je 0x425495
push 0x4be658
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIA]
test eax, eax
jne 0x42540e
push 7
mov byte [ebp + 0x48], al
pop ecx
lea edi, [ebp + 0x49]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x1d
lea eax, [ebp - 0x75]
push eax
lea eax, [ebp + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp + 0x48]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveBlanksA]
lea eax, [ebp + 0x48]
push eax
lea eax, [ebx + 0x48]
push 0x4be654
push eax
call fcn.004251d3
add esp, 0xc
push 7
pop ecx
xor eax, eax
mov byte [ebp + 0x28], 0
lea edi, [ebp + 0x29]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x1d
lea eax, [ebp - 0x57]
push eax
lea eax, [ebp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp + 0x28]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveBlanksA]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebx + 0x44]
push 0x4be654
push eax
call fcn.004251d3
add esp, 0xc
push 7
pop ecx
xor eax, eax
mov byte [ebp + 8], 0
lea edi, [ebp + 9]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x1d
lea eax, [ebp - 0x39]
push eax
lea eax, [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveBlanksA]
lea eax, [ebp + 8]
push eax
lea eax, [ebx + 0x4c]
push 0x4be654
push eax
call fcn.004251d3
add esp, 0xc
cmp dword [ebp - 0x88], esi
je 0x42541d
add dword [ebp - 0x88], 0xa
mov eax, dword [ebp - 0x88]
mov dword [ebx + 0x50], eax
xor eax, eax
lea edi, [ebp + 0x69]
mov byte [ebp + 0x68], 0
stosd dword es:[edi], eax
mov dword [ebx + 0x98], esi
jmp 0x425478
cmp byte [ebp + 0x68], 0xff
jne 0x425471
mov al, byte [ebp + 0x69]
and al, 0xe0
cmp al, 0xe0
jne 0x425471
push dword [ebp - 0x88]
lea eax, [ebp + 0x68]
push eax
lea esi, [ebx + 4]
push esi
mov ecx, ebx
call fcn.00424f5c
sub esp, 0x40
push 0x10
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.00425064
test eax, eax
jne 0x425493
add dword [ebp - 0x88], 4
lea eax, [ebp + 0x68]
push eax
push dword [ebp - 0x88]
mov ecx, ebx
push dword [ebp - 0x8c]
call fcn.00424f1e
test eax, eax
jne 0x425438
push 4
pop esi
push dword [ebp - 0x8c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
mov ecx, dword [ebp + 0x70]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0049f127
add ebp, 0x74
leave
ret 4