Function at 0x40adad
Capabilities:
Read file on windows

Disassembly:
je 0x40adcf
jb 0x40ae16
popal
jb 0x40ae19
jae 0x40add7
xor ah, byte [eax]
push esp
outsd dx, dword [esi]
insd dword es:[edi], dx
insd dword es:[edi], dx
jns 0x40addf
push ebx
popal
insb byte es:[edi], dx
outsd dx, dword [esi]
and byte cs:[ebx + 0x4e], bl
outsd dx, dword [esi]
jbe 0x40adf7
xor dh, byte [eax]
xor byte [0x6f79205d], dh
and byte [ecx + 0x6f], bh
jne 0x40ae46
jae 0x40adf6
and byte [ebx + 0x44], bl
pop ebx
inc esp
jp 0x40ae43
popal
jne 0x40ae4a
push 0x61
popal
and byte [ecx + 0x70], al
popal
outsb dx, byte [esi]
popal
jae 0x40ae45
pop ebp
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
sti
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add bl, bh
push dword [esp + ecx + 0x53]
push 0
push ecx
call fcn.0040eba0
add esp, 0xc
test esi, esi
je 0x40add5
or eax, 0xffffffff
xor edx, edx
push dword [ebx]
sal bh, cl
idiv dword [ecx]
inc ebp
adc al, 0x77
mov ch, 0xf
scasd eax, dword es:[edi]
jge 0x40ae38
div edi
cmp dword [ebp + 0x14], eax
ja 0x40add5
imul edi, dword [ebp + 0x14]
test dword [esi + 0xc], 0x10c
mov dword [ebp - 0x10], edi
mov ebx, edi
je 0x40ae3a
mov eax, dword [esi + 0x18]
mov dword [ebp - 0xc], eax
jmp 0x40ae41
mov dword [ebp - 0xc], 0x1000
test edi, edi
je 0x40af23
fiadd dword [eax]
add byte [eax], al
add byte [eax], al
add bh, dh
test dword [esi + 0xc], 0x10c
je 0x40ae96
inc esi
or al, 0xc
add dword [eax], eax
add byte [esp + eax*2 - 0x75], dh
inc esi
add al, 0x85
sal byte [ebp + edi + 0xf], 0x88
add byte [eax], al
add byte [ebx + 0x72d83bfb], cl
add cl, byte [ebx - 0x382c408]
mov eax, dword [esi + 4]
test eax, eax
je 0x40ae96
js 0x40af51
mov edi, ebx
cmp ebx, eax
jb 0x40ae67
mov edi, eax
cmp edi, dword [ebp - 4]
ja 0x40af2b
push edi
push dword [esi]
push dword [ebp - 4]
push dword [ebp - 8]
call fcn.0040eb2b
sub dword [esi + 4], edi
add dword [esi], edi
add dword [ebp - 8], edi
sub ebx, edi
add esp, 0x10
sub dword [ebp - 4], edi
mov edi, dword [ebp - 0x10]
jmp 0x40af1b
cmp ebx, dword [ebp - 0xc]
jb 0x40aef7
cmp dword [ebp - 0xc], 0
je 0x40aec0
mov ecx, 0x7fffffff
xor edx, edx
cmp ebx, ecx
jbe 0x40aeb5
mov eax, ecx
div dword [ebp - 0xc]
mov eax, ecx
jmp 0x40aebc
mov eax, ebx
div dword [ebp - 0xc]
mov eax, ebx
sub eax, edx
jmp 0x40aecb
mov eax, 0x7fffffff
cmp ebx, eax
ja 0x40aecb
mov eax, ebx
cmp eax, dword [ebp - 4]
ja 0x40af2b
push eax
push dword [ebp - 8]
push esi
call fcn.0040eb05
pop ecx
push eax
call fcn.0040ea0f
add esp, 0xc
test eax, eax
je 0x40af63
cmp eax, 0xffffffff
je 0x40af51
add dword [ebp - 8], eax
sub ebx, eax
sub dword [ebp - 4], eax
jmp 0x40af1b
push esi
call fcn.0040e336
pop ecx
cmp eax, 0xffffffff
je 0x40af55
cmp dword [ebp - 4], 0
je 0x40af2b
mov ecx, dword [ebp - 8]
inc dword [ebp - 8]
mov byte [ecx], al
mov eax, dword [esi + 0x18]
dec ebx
dec dword [ebp - 4]
mov dword [ebp - 0xc], eax
test ebx, ebx
jne 0x40ae49
mov eax, dword [ebp + 0x14]
jmp 0x40ade7
cmp dword [ebp + 0xc], 0xffffffff
je 0x40af41
push dword [ebp + 0xc]
push 0
push dword [ebp + 8]
call fcn.0040eba0
add esp, 0xc
call fcn.0040bf6b
mov dword [eax], 0x22
jmp 0x40ade0
or dword [esi + 0xc], 0x20
mov eax, edi
sub eax, ebx
xor edx, edx
div dword [ebp + 0x10]
jmp 0x40ade7
or dword [esi + 0xc], 0x10
jmp 0x40af55