Function at 0x416b9d
Capabilities:
Read file on windows

Disassembly:
mov ecx, eax
jno 0x416ae4
jo 0x416ae4
call 0xf9c35c11
inc dword [ecx]
add byte [eax], al
sub ecx, esi
cmp ecx, 0x1ff
ja 0x416c84
add esi, 0x200
mov di, 2
js 0x416b01
jns 0x416b01
call 0x275ed14
add byte [eax], al
jb 0x416d3b
cmp eax, esi
je 0x416b0e
jne 0x416b0e
call 0x1b1ee21
add byte [eax], al
jae 0x416c84
mov ecx, ebx
je 0x416b1b
jne 0x416b1b
call 0x49dc07
add byte [esi + 0x7f], cl
add edi, dword [esi + 1]
call 0x417390
dec esi
jg 0x416b26
jle 0x416b26
call 0x74998b94
push es
push 0x20
pop eax
je 0x416b31
bsr eax, esi
xor eax, 0x1f
test ax, ax
je 0x416d3b
mov cl, 0x20
jns 0x416b41
js 0x416b41
call 0x284dbed0
sal dword [ecx], 0xed
mov edx, dword [ebx + 0xc]
sub cl, al
xor ebp, ebp
mov eax, 0
inc ebp
shl ebp, cl
test cl, 0x20
mov ecx, dword [ebx]
cmovne ebp, eax
mov eax, dword [ebx + 4]
test edx, edx
mov dword [esp + 4], eax
jbe 0x416b66
ja 0x416b66
call 0x4065dff5
mov esi, dword [esp + 0x40]
mov dword [esp + 8], esi
jns 0x416b73
js 0x416b73
call 0x1bf6ef6
jg 0x416b78
jle 0x416b78
call 0xf2ef8b
add byte [eax], al
je 0x416c2f
mov esi, dword [ebx + 8]
mov eax, edx
js 0x416b88
jns 0x416b88
call 0x465c017
mov edx, dword [esp + 4]
mov edx, dword [edx + 4]
mov dword [esp + 0xc], edx
jbe 0x416b98
ja 0x416b98
call 0x1065b825
mov dword [esp + 0x10], ecx
mov edx, esi
push dword [esp + 8]
push dword [esp + 8]
push ebp
push 0
mov dword [esp + 0x20], eax
push eax
call dword [esp + 0x1c]
add esp, 0x10
test al, 1
jne 0x416c23
js 0x416bba
jns 0x416bba
call 0x465b049
mov eax, dword [esp + 4]
mov edx, ebp
mov eax, dword [eax]
jl 0x416bc7
jge 0x416bc7
call 0x1065b856
mov ecx, dword [esp + 0x10]
push dword [esp + 8]
push 0
call eax
pop ecx
pop edx
test eax, eax
je 0x416d31
jg 0x416be2
jle 0x416be2
call 0x1465e871
mov edi, dword [esp + 0x14]
jg 0x416beb
jle 0x416beb
call 0xf9cb6928
cmp ebp, edi
mov ecx, edi
cmovb ecx, ebp
push ecx
push esi
push eax
mov dword [esp + 0x18], eax
call fcn.0040307b
add esp, 0xc
mov eax, dword [esp + 4]
mov edx, esi
mov eax, dword [eax + 8]
jp 0x416c0f
jnp 0x416c0f
call 0x1065b89e
mov ecx, dword [esp + 0x10]
push dword [esp + 8]
push 0
push edi
call eax
add esp, 0xc
mov esi, dword [esp + 0xc]
jnp 0x416c28
jp 0x416c28
call 0x1ba6fa4
js 0x416c2d
jns 0x416c2d
call 0x3b2b31c
jmp 0x416c75
jno 0x416c34
jo 0x416c34
call 0x465b0c3
mov eax, dword [esp + 4]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x28]
lea edx, [esp + 0x20]
mov dword [esp + 0x24], eax
je 0x416c4d
jne 0x416c4d
call 0x865e150
push dword [esp + 8]
push ebp
call fcn.004172c5
pop eax
pop ecx
movzx edi, word [esp + 0x2c]
jle 0x416c63
jg 0x416c63
call 0x1bf6fe6
jg 0x416c68
jle 0x416c68
call 0x1040f1d2
test edx, ecx
add byte [eax], al
add byte [ebx + 0x79282474], cl
add edi, dword [eax + 1]
test di, di
jne 0x416d3b
mov esi, dword [esp + 0x28]
jns 0x416c7a
js 0x416c7a
call 0x8949e007
imul ecx, dword [ebx + ecx*4], 0x6c
and al, 0x18
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], ebp
mov ebp, dword [esp + 0x18]
mov ecx, ebx
jnp 0x416c8b
jp 0x416c8b
call 0x494c77
add byte [ecx + 0x1fffa], al
add byte [edi + 0x18], dh
call fcn.0041746f
cmp edx, 0x1ff
ja 0x416cb0
mov ecx, ebx
jl 0x416c9f
jge 0x416c9f
call 0x48598b
add byte [ecx + 0x750374d9], cl
add eax, ebp
call 0x417390
mov ecx, ebx
je 0x416cab
jne 0x416cab
call 0x492c97
add byte [ebx + eax + 0x7d], bh
add eax, ebp
call fcn.0041746f
jl 0x416cb5
jge 0x416cb5
call 0x1c07037
jle 0x416cba
jg 0x416cba
call 0x4465e1bd
push dword [esp + 0x44]
lea ecx, [esp + 0x20]
push ecx
push edx
push eax
push ebp
call sub.KERNEL32.dll_ReadFile
test eax, eax
je 0x416ceb
jp 0x416cd4
jnp 0x416cd4
call 0x8b55e063
inc ebx
or al, 3
je 0x416d01
mov esi, dword [ebx + 0x14]
mov eax, dword [ebx + 0xc]
add esi, dword [esp + 0x1c]
js 0x416ce3
sbb al, 0x78
add edi, dword [ecx + 1]
jns 0x416ce3
call 0xe955e070
std
invalid
mov dword [ebx + 0x14], esi
jmp 0x416add
jae 0x416cf0
jb 0x416cf0
call 0x23c98dc
add byte [esi - 0x7d], ah
clc
insd dword es:[edi], dx
call sub.KERNEL32.dll_GetLastError
cmp ax, 0x6d
je 0x416d11
movzx eax, ax
cmp eax, 0x3e5
add byte [eax], al
jne 0x416d22
mov eax, dword [0x403e7c]
jae 0x416d0f
jb 0x416d0f
call 0x80e277fe
inc eax
add byte [ebp + 3], dh
jmp 0x416d1b
mov eax, dword [0x403e80]
jne 0x416d1b
je 0x416d1b
call 0x896579aa
add ebx, ebp
and al, 0x7b
add edi, dword [edx + 1]
mov ecx, dword [esp]
mov dword [ecx], eax
jmp 0x416d46
jnp 0x416d27
jp 0x416d27
call 0x666571b6
mov dword [eax], 0x15eb000e
mov eax, dword [esp]
mov word [eax], 0xe
jmp 0x416d46
jle 0x416d36
jg 0x416d36
call 0x1bb70b5
jnp 0x416d3b
jp 0x416d3b
call 0x1b270af
jo 0x416d40
jno 0x416d40
call 0x666571cf
mov dword [eax], edi
mov eax, dword [esp]
mov word [eax], di
jno 0x416d4b
jo 0x416d4b
call 0x5e7231d2
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret