Function at 0x467640
Capabilities:
Read file on windows

Disassembly:
mov ax, word [esp + 8]
sub esp, 8
test ax, ax
push ebx
push ebp
push esi
push edi
mov edi, ecx
je 0x467665
cmp ax, 1
je 0x467665
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret 0x10
movsx esi, ax
mov eax, esi
shl eax, 5
lea ebp, [eax + edi]
lea ebx, [ebp + 0xc]
push ebx
call dword [fcn.0065e260]
mov ecx, edi
call fcn.004672f0
test eax, eax
jne 0x46768f
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0x10
mov edx, dword [ebp + 4]
lea ecx, [ebp + 4]
mov dword [esp + 0x14], ecx
call dword [edx + 0x1c]
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4676ae
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0x10
mov ecx, dword [edi + esi*4 + 0x24c]
test ecx, ecx
jne 0x4676c5
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret 0x10
push eax
call dword [fcn.0065f1e0]
mov edx, dword [edi + 0x254]
lea ecx, [esi + esi*2]
shl ecx, 0xa
add esp, 4
xor ebp, ebp
mov ecx, dword [ecx + edx]
test ecx, ecx
jle 0x467700
mov edx, dword [edi + esi*4 + 0x258]
add edx, 0xbfc
cmp eax, dword [edx]
je 0x467700
inc ebp
add edx, 0xc00
cmp ebp, ecx
jl 0x4676f1
cmp ebp, ecx
jl 0x467710
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret 0x10
mov ecx, dword [edi + esi*4 + 0x258]
lea eax, [ebp + ebp*2]
shl eax, 0xa
mov dword [esp + 0x10], eax
mov eax, dword [ecx + eax + 0x10]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x46785c
cmp dword [esp + 0x28], eax
jle 0x46773c
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
test eax, eax
jg 0x467750
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret 0x10
push ebx
call dword [fcn.0065e260]
mov eax, dword [edi + esi*4 + 0x258]
mov edx, dword [esp + 0x10]
xor ebx, ebx
mov ecx, dword [eax + edx + 0x14]
test ecx, ecx
jle 0x46784f
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], 0x20
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
cmp edx, ecx
push 0
ja 0x4677f9
lea ecx, [ebp + ebp*2]
shl ecx, 8
add ecx, ebx
mov eax, dword [eax + ecx*4 + 0x18]
lea edx, [eax + eax*2]
mov eax, dword [edi + esi*4 + 0x24c]
shl edx, 0xa
push edx
push eax
call dword [fcn.0065f1d4]
mov ecx, dword [edi + esi*4 + 0x24c]
mov edx, dword [esp + 0x30]
push ecx
push 1
push 0xc00
push edx
call dword [fcn.0065f1bc]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
add ecx, 0x20
add eax, 0xc00
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
mov eax, dword [edi + esi*4 + 0x258]
add esp, 0x1c
inc ebx
cmp ebx, dword [eax + ecx + 0x14]
jl 0x467780
jmp 0x46784f
mov eax, dword [edi + esi*4 + 0x258]
lea edx, [ebp + ebp*2]
shl edx, 8
add edx, ebx
mov eax, dword [eax + edx*4 + 0x18]
mov edx, dword [edi + esi*4 + 0x24c]
lea ecx, [eax + eax*2]
shl ecx, 0xa
push ecx
push edx
call dword [fcn.0065f1d4]
mov eax, dword [edi + esi*4 + 0x24c]
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x38]
lea ebx, [ebx + ebx*2]
push 1
lea ecx, [eax + eax*2]
shl ebx, 0xa
shl ecx, 5
sub ecx, ebx
add ebx, edx
push ecx
push ebx
call dword [fcn.0065f1bc]
add esp, 0x1c
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0x10