Function at 0x434a40
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push esi
mov esi, dword [ebp + 0xc]
cmp dword [esi + 0x984], 0
push edi
jne 0x434a6d
mov eax, dword [esi + 0x998]
sub eax, 3
neg eax
sbb eax, eax
and eax, 0xf
add eax, 0x11
movzx eax, ax
jmp 0x434a83
xor ecx, ecx
cmp dword [esi + 0x998], 3
setne cl
lea ecx, [ecx*8 + 9]
movzx eax, cx
mov edi, dword [ebp + 8]
push 0
lea edx, [ebp - 0xc]
push edx
mov edx, dword [edi + 0x5d]
movzx eax, ax
push eax
lea ecx, [ebp - 0x36]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0xc]
sub dword [edi + 0x65], eax
mov edx, dword [esi + 0x984]
movzx eax, byte [ebp - 0x36]
movzx ecx, byte [ebp - 0x35]
test edx, edx
sete bl
add bl, 8
shl eax, 8
or eax, ecx
movsx edi, bl
mov ecx, 0x10
sub ecx, edi
sar eax, cl
mov ecx, 1
mov dword [ebp - 0xc], ecx
mov ecx, edi
mov edi, dword [ebp - 0xc]
shl edi, cl
sub edi, 1
and eax, edi
mov dword [ebp - 0x10], eax
movsx ax, bl
xor ebx, ebx
cmp dword [esi + 0x998], 3
mov edi, edx
setne bl
add ebx, 1
neg edi
sbb edi, edi
add edi, 2
test edx, edx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], edi
je 0x434b0c
mov cl, bl
jmp 0x434b16
cmp ebx, 1
sete cl
lea ecx, [ecx + ecx + 3]
movsx dx, cl
add ax, dx
test ebx, ebx
mov word [ebp - 0x38], ax
jle 0x434b56
lea edx, [esi + 0x814]
mov ecx, ebx
lea ecx, [ecx]
mov dword [edx + 4], 0
mov dword [edx], 0
mov dword [edx - 4], 0
mov dword [edx - 8], 0
add edx, 0xc0
sub ecx, 1
jne 0x434b30
cmp edi, 2
jne 0x434c26
test ebx, ebx
jle 0x434c26
add esi, 0x874
mov edi, ebx
nop
movzx edx, ax
mov bl, dl
shr edx, 3
movzx edx, byte [ebp + edx - 0x36]
and bl, 7
mov ecx, 7
sub cl, bl
shr edx, cl
add ax, 1
mov word [ebp - 0x38], ax
mov ecx, 7
and edx, 1
mov dword [esi - 8], edx
movzx edx, ax
mov bl, dl
shr edx, 3
movzx edx, byte [ebp + edx - 0x36]
and bl, 7
sub cl, bl
shr edx, cl
add ax, 1
mov word [ebp - 0x38], ax
mov ecx, 7
and edx, 1
mov dword [esi - 4], edx
movzx edx, ax
mov bl, dl
shr edx, 3
movzx edx, byte [ebp + edx - 0x36]
and bl, 7
sub cl, bl
shr edx, cl
add ax, 1
mov word [ebp - 0x38], ax
mov ecx, 7
and edx, 1
mov dword [esi], edx
movzx edx, ax
mov bl, dl
shr edx, 3
movzx edx, byte [ebp + edx - 0x36]
and bl, 7
sub cl, bl
shr edx, cl
add ax, 1
add esi, 0xc0
mov word [ebp - 0x38], ax
and edx, 1
sub edi, 1
mov dword [esi - 0xbc], edx
jne 0x434b70
mov ebx, dword [ebp - 8]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0xc]
test edi, edi
mov dword [ebp - 4], 0
jle 0x434c8b
lea eax, [esi + 0x804]
mov dword [ebp - 8], eax
lea ebx, [ebx]
test ebx, ebx
mov dword [ebp + 0xc], 0
jle 0x434c7a
mov edi, dword [ebp - 8]
mov edi, edi
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 4]
push esi
lea eax, [ebp - 0x38]
mov dword [edi + 4], ecx
mov dword [edi], edx
call fcn.00434da0
mov eax, dword [ebp + 0xc]
add eax, 1
add edi, 0xc0
cmp eax, ebx
mov dword [ebp + 0xc], eax
jl 0x434c50
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
add dword [ebp - 8], 0x60
add eax, 1
cmp eax, edi
mov dword [ebp - 4], eax
jl 0x434c40
mov edi, dword [esi + 0x9b8]
cmp word [edi], 0
mov dword [ebp + 0xc], edi
jne 0x434c9f
mov dword [ebp + 0xc], esi
mov edi, esi
mov ecx, dword [esi + 0x984]
mov edx, dword [esi + 0x990]
mov ebx, dword [edx*4 + 0x45aa20]
mov eax, ecx
neg eax
sbb eax, eax
and eax, 0xffffffb8
add eax, 0x90
imul eax, dword [esi + 0x98c]
sar ebx, cl
cdq
idiv ebx
add ax, word [esi + 0x994]
sub ax, 4
cmp dword [esi + 0x988], 0
movzx ebx, ax
jne 0x434ce6
sub ebx, 2
test ecx, ecx
jne 0x434d02
mov eax, dword [esi + 0x998]
sub eax, 3
neg eax
sbb eax, eax
and eax, 0xf
add eax, 0x11
movzx eax, ax
jmp 0x434d18
xor ecx, ecx
cmp dword [esi + 0x998], 3
setne cl
lea ecx, [ecx*8 + 9]
movzx eax, cx
mov ecx, dword [ebp - 0x10]
sub ebx, eax
cmp cx, 0x200
mov dword [ebp - 0xc], ebx
jg 0x434d8e
cmp bx, 0x5a0
jge 0x434d8e
movsx eax, word [edi]
movsx edi, cx
cmp edi, eax
mov dword [ebp - 0x10], edi
jl 0x434d3d
mov edi, eax
mov edx, dword [ebp + 0xc]
sub eax, edi
push edi
lea eax, [eax + edx + 4]
push eax
lea ecx, [esi + 4]
push ecx
call fcn.004406b0
add esp, 0xc
push 0
movsx eax, bx
mov ebx, dword [ebp + 8]
lea edx, [ebp + 0xc]
push edx
mov edx, dword [ebx + 0x5d]
push eax
lea ecx, [edi + esi + 4]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp + 0xc]
sub dword [ebx + 0x65], eax
mov ecx, dword [ebp - 0xc]
cmp edi, dword [ebp - 0x10]
lea edx, [edi + ecx]
pop edi
mov word [esi], dx
pop esi
setge al
pop ebx
mov esp, ebp
pop ebp
ret 8
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8