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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd7c
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x284], ecx
mov dword [ebp - 0x280], ecx
mov dword [ebp - 0x1dc], ecx
mov dword [ebp - 0x1f4], ecx
mov dword [ebp - 0x1e4], edx
mov dword [ebp - 0x1e0], eax
mov eax, dword [ebp - 0x1e0]
call fcn.00404c14
mov eax, dword [ebp - 0x1e4]
call fcn.00404c14
xor eax, eax
push ebp
push 0x46c353
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x1e5], 0
push 0
lea eax, [ebp - 0x27c]
push eax
mov eax, dword [ebp - 0x1e0]
call fcn.00404c24
push eax
call sub.kernel32.dll_OpenFile
mov edi, eax
test edi, edi
je 0x46c31a
cmp edi, 0xffffffff
je 0x46c31a
push 0
push edi
call sub.kernel32.dll_GetFileSize_1
mov ebx, eax
test ebx, ebx
je 0x46c31a
mov eax, ebx
call fcn.00402a68
mov esi, eax
push 0
lea eax, [ebp - 0x1ec]
push eax
push ebx
push esi
push edi
call sub.kernel32.dll_ReadFile_1
push edi
call sub.kernel32.dll_CloseHandle_1
mov edx, dword [ebp - 0x1e4]
lea eax, [ebp - 0x1d4]
call fcn.00402fec
lea eax, [ebp - 0x1d4]
call fcn.00402d88
call fcn.00402bf4
mov edx, 0x46c370
lea eax, [ebp - 0x1d4]
call fcn.00404e14
call fcn.00403490
call fcn.00402bf4
mov edx, 0x46c384
lea eax, [ebp - 0x1d4]
call fcn.00404e14
call fcn.00403490
call fcn.00402bf4
cmp ebx, 0xfc00
ja 0x46c112
push ebp
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.0046bc3c
pop ecx
xor edi, edi
jmp 0x46c17d
or edi, 0xffffffff
sub esi, 0xfc00
xor eax, eax
mov dword [ebp - 0x1f0], eax
inc edi
add dword [ebp - 0x1f0], 0xfc00
cmp ebx, 0xfc00
jb 0x46c152
sub ebx, 0xfc00
push ebp
mov eax, esi
add eax, dword [ebp - 0x1f0]
mov ecx, edi
mov edx, 0xfc00
call fcn.0046bc3c
pop ecx
cmp ebx, 0xfc00
jae 0x46c123
test ebx, ebx
jbe 0x46c177
inc edi
push ebp
mov eax, esi
add eax, dword [ebp - 0x1f0]
add eax, 0xfc00
mov ecx, edi
mov edx, ebx
call fcn.0046bc3c
pop ecx
add esi, 0xfc00
lea eax, [ebp - 0x1f4]
mov edx, 0x46c3a4
call fcn.004047fc
test edi, edi
jle 0x46c1d8
mov ebx, edi
test ebx, ebx
jbe 0x46c1d8
mov dword [ebp - 8], 1
push dword [ebp - 0x1f4]
push 0x46c3b8
lea edx, [ebp - 0x280]
mov eax, dword [ebp - 8]
call fcn.0046bc08
push dword [ebp - 0x280]
push 0x46c3c8
lea eax, [ebp - 0x1f4]
mov edx, 4
call fcn.00404ae4
inc dword [ebp - 8]
dec ebx
jne 0x46c19e
lea edx, [ebp - 0x284]
mov eax, dword [ebp - 0x1e0]
call fcn.00408f64
lea eax, [ebp - 0x284]
mov edx, 0x46c3d8
call fcn.00404a2c
mov eax, dword [ebp - 0x284]
push eax
mov edx, 0x46c3ec
lea eax, [ebp - 0x1d4]
call fcn.00404e14
mov edx, dword [ebp - 0x1f4]
call fcn.00404e14
mov dl, 0x20
call fcn.00403424
pop edx
call fcn.00404e14
call fcn.00403490
call fcn.00402bf4
mov edx, 0x46c408
lea eax, [ebp - 0x1d4]
call fcn.00404e14
call fcn.00403490
call fcn.00402bf4
mov edx, 0x46c424
lea eax, [ebp - 0x1d4]
call fcn.00404e14
call fcn.00403490
call fcn.00402bf4
mov edx, 0x46c43c
lea eax, [ebp - 0x1d4]
call fcn.00404e14
call fcn.00403490
call fcn.00402bf4
mov edx, 0x46c458
lea eax, [ebp - 0x1d4]
call fcn.00404e14
mov edx, 0x46c3c8
call fcn.00404e14
call fcn.00403490
call fcn.00402bf4
mov edx, 0x46c46c
lea eax, [ebp - 0x1d4]
call fcn.00404e14
mov edx, 0x46c3c8
call fcn.00404e14
call fcn.00403490
call fcn.00402bf4
mov edx, 0x46c480
lea eax, [ebp - 0x1d4]
call fcn.00404e14
call fcn.00403490
call fcn.00402bf4
mov edx, 0x46c494
lea eax, [ebp - 0x1d4]
call fcn.00404e14
call fcn.00403490
call fcn.00402bf4
lea eax, [ebp - 0x1d4]
call fcn.004030b4
call fcn.00402bf4
mov eax, esi
call fcn.00402a98
mov byte [ebp - 0x1e5], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46c35a
lea eax, [ebp - 0x284]
mov edx, 2
call fcn.00404788
lea eax, [ebp - 0x1f4]
call fcn.00404764
lea eax, [ebp - 0x1e4]
mov edx, 3
call fcn.00404788
ret