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

Disassembly:
push 0xffffffffffffffff
push 0x4d97fb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1bc
mov eax, dword [0x50ba00]
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x1c4], eax
mov eax, dword [esi]
push edi
xor edi, edi
cmp eax, edi
je 0x4afbce
push eax
call fcn.00482838
add esp, 4
mov eax, dword [esi + 4]
cmp eax, edi
je 0x4afbde
push eax
call fcn.00482838
add esp, 4
mov dword [esi], edi
mov dword [esi + 4], edi
call fcn.004987a0
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x98], edi
mov word [esp + 0x18], di
mov edx, dword [eax]
push 0xffffffffffffffff
push edx
lea ecx, [esp + 0x1c]
call fcn.00401550
mov dword [esp + 0x1d4], edi
call fcn.004987b0
mov eax, dword [eax]
cmp word [eax], di
jne 0x4afd29
mov ecx, dword [esp + 0x1dc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00407660
mov edx, dword [esp + 0x14]
push edi
push 0x80
push 3
push edi
push 1
push Ordinal_2
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x4afc96
push 0x63
push 0x4fc620
lea eax, [esi + 0x10]
push eax
call fcn.004850c9
push 0x31
push 0x4e61d0
add esi, 0xd8
push esi
call fcn.004850c9
add esp, 0x18
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x18]
cmp eax, ecx
je 0x4afc8f
push eax
call fcn.00482838
add esp, 4
xor eax, eax
jmp 0x4afe69
push edi
push ebp
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
test edi, edi
jne 0x4afcb1
push 0x63
push 0x4fc604
lea edx, [esi + 0x10]
push edx
jmp 0x4afc5f
cmp edi, 0x400000
jbe 0x4afcc6
push 0x63
push 0x4fc5e4
lea edx, [esi + 0x10]
push edx
jmp 0x4afc5f
push edi
mov dword [esp + 0x14], 0
call fcn.004cabbc
add esp, 4
push 0
lea edx, [esp + 0x14]
push edx
push edi
mov ebx, eax
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x10], edi
je 0x4afd12
push ebx
call fcn.004cabc1
add esp, 4
mov ecx, esi
call fcn.004aec60
push 0x63
push 0x4fc5bc
jmp 0x4afc5b
mov edx, dword [esp + 0x1e0]
push edx
push edi
push ebx
mov ecx, esi
call fcn.004afa10
push ebx
jmp 0x4afe48
call fcn.004987b0
mov edx, dword [eax]
push edx
lea ecx, [esp + 0x18]
call fcn.00407660
mov eax, dword [esp + 0x14]
push 2
push edi
push eax
call fcn.004c1260
lea ecx, [esp + 0xa8]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, eax
mov eax, dword [esp + 0x1f0]
push 1
push eax
push ebx
call fcn.004bf1a0
add esp, 0x20
test eax, eax
je 0x4afda2
push 0x63
lea ecx, [esi + 0x10]
push 0x4fc588
push ecx
call fcn.004850c9
push 0x31
push 0x4e61d0
add esi, 0xd8
push esi
call fcn.004850c9
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x30]
add esp, 0x18
cmp eax, edx
jmp 0x4afc84
mov ebp, dword [esp + 0x1c4]
cmp ebp, edi
jne 0x4afdb9
push 0x63
push 0x4fc604
jmp 0x4afc5b
cmp ebp, 0x400000
jbe 0x4afdd1
push 0x63
push 0x4fc5e4
lea edx, [esi + 0x10]
push edx
jmp 0x4afc5f
push ebp
call fcn.004cabbc
mov edx, dword [esp + 0x14]
push 3
push ebp
mov edi, eax
push edi
push edx
push ebx
call fcn.004c12d0
add esp, 0x18
test eax, eax
je 0x4afe2d
cmp eax, 0x600
je 0x4afe2d
push edi
call fcn.004cabc1
push ebx
call fcn.004c1320
push 0x63
lea eax, [esi + 0x10]
push 0x4fc55c
push eax
call fcn.004850c9
push 0x31
push 0x4e61d0
add esi, 0xd8
push esi
call fcn.004850c9
add esp, 0x20
jmp 0x4afc7a
push ebx
call fcn.004c1320
mov edx, dword [esp + 0x1e4]
add esp, 4
push edx
push ebp
push edi
mov ecx, esi
call fcn.004afa10
push edi
mov esi, eax
call fcn.004cabc1
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1c]
add esp, 4
cmp eax, ecx
je 0x4afe67
push eax
call fcn.00482838
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x1cc]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x1bc]
pop ebx
call fcn.00482423
add esp, 0x1c8
ret 8