Function at 0x46fb10
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x68]
lea ebx, [edi + 0x6c]
lea esi, [edi + 0x70]
test eax, eax
je 0x46fcdb
nop word [eax + eax]
mov edx, dword [ebx]
dec eax
mov dword [edi + 0x68], eax
cmp dword [esi], 8
mov dword [ebp + 8], edx
jae 0x46fca8
lea ebx, [edi + 0x24]
mov ecx, ebx
nop word [eax + eax]
mov edx, dword [edi + 0x30]
cmp edx, dword [edi + 0x34]
jb 0x46fc7f
mov ebx, dword [section..data]
mov edx, dword [edi + 0x2c]
mov eax, dword [edi + 0x28]
lea esi, [ebx - 4]
test edx, edx
jl 0x46fb87
jg 0x46fb75
test eax, eax
jb 0x46fb87
lea ecx, [edi + 0x24]
test edx, edx
jg 0x46fb87
jl 0x46fb82
cmp eax, esi
jae 0x46fb87
mov esi, eax
lea ecx, [edi + 0x24]
mov ecx, dword [ecx]
mov eax, dword [edi + 0xc]
add ecx, 4
test eax, eax
js 0x46fd31
test ecx, ecx
je 0x46fd24
cmp esi, ebx
ja 0x46fd17
mov edx, dword [0x540a10]
test edx, edx
je 0x46fbba
cmp dword [edx], 0
jne 0x46fd0a
cmp eax, dword [0x4f2004]
jne 0x46fbf3
mov edx, dword [0x4f9dd0]
mov ebx, dword [0x4f9dcc]
lea eax, [edx + esi]
cmp eax, ebx
jbe 0x46fbd9
mov esi, ebx
sub esi, edx
mov eax, dword [0x4f9dc8]
push esi
add eax, edx
push eax
push ecx
call fcn.00493080
add esp, 0xc
add dword [0x4f9dd0], esi
jmp 0x46fc0e
mov edx, dword [0x4f9de0]
push esi
push ecx
push eax
test edx, edx
je 0x46fc04
call edx
jmp 0x46fc09
call fcn.004a6072
mov esi, eax
add esp, 0xc
test esi, esi
jle 0x46fc40
mov ecx, dword [0x540a08]
mov eax, esi
cdq
add ecx, eax
mov eax, dword [0x540a0c]
mov dword [0x540a08], ecx
adc eax, edx
mov edx, dword [0x4f9dd8]
mov dword [0x540a0c], eax
test edx, edx
je 0x46fc40
push eax
push ecx
call edx
add esp, 8
mov dword [edi + 0x34], esi
cmp esi, 1
jl 0x46fd43
mov ecx, dword [edi + 0x2c]
mov eax, dword [edi + 0x28]
test ecx, ecx
jl 0x46fc67
jg 0x46fc5c
test eax, eax
jb 0x46fc67
sub eax, esi
mov dword [edi + 0x28], eax
sbb ecx, 0
mov dword [edi + 0x2c], ecx
add esi, 4
mov dword [edi + 0x30], 4
mov dword [edi + 0x34], esi
lea ebx, [edi + 0x24]
mov edx, 4
lea esi, [edi + 0x70]
mov eax, dword [ebx]
mov ecx, dword [esi]
movzx eax, byte [eax + edx]
shl eax, cl
or dword [ebp + 8], eax
lea eax, [edx + 1]
mov dword [edi + 0x30], eax
lea eax, [ecx + 8]
mov dword [esi], eax
mov ecx, ebx
cmp eax, 8
jb 0x46fb50
mov edx, dword [ebp + 8]
lea ebx, [edi + 0x6c]
mov eax, dword [edi + 0x74]
mov ecx, dword [edi + 0x14]
mov dword [ebx], edx
mov byte [ecx + eax], dl
mov edx, dword [edi + 0x74]
mov eax, dword [ebx]
inc edx
mov ecx, dword [esi]
shr eax, 8
sub ecx, 8
mov dword [edi + 0x74], edx
cmp edx, dword [section..data]
mov dword [ebx], eax
mov dword [esi], ecx
je 0x46fcf6
mov eax, dword [edi + 0x68]
test eax, eax
jne 0x46fb30
dec eax
mov dword [edi + 0x68], eax
mov eax, dword [edi + 0x74]
mov dword [edi + 0x10], eax
mov eax, dword [ebx]
mov dword [edi + 0x1c], eax
mov al, byte [esi]
mov byte [edi + 0x20], al
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret
mov dword [edi + 0x10], edx
mov eax, 1
mov dword [edi + 0x74], 0
pop edi
pop esi
pop ebx
pop ebp
ret
call fcn.004a4801
mov dword [eax], 4
jmp 0x46fd3c
call fcn.004a4801
mov dword [eax], 7
jmp 0x46fd3c
call fcn.004a4801
mov dword [eax], 0xe
jmp 0x46fd3c
call fcn.004a4801
mov dword [eax], 9
mov dword [edi + 0x34], 0xffffffff
push edi
mov dword [edi + 0x78], str.unexpected_end_of_file
call fcn.0046e7f0
int3