Function at 0x40af40
Capabilities:
Read file on windows

Disassembly:
je 0x40af17
mov cl, byte [ebx + 0x30]
mov byte [eax], cl
push 0x16
inc eax
dec edx
mov dword [esi], edx
mov dword [ebx - 0x77], edi
mov ecx, dword [esi]
inc ebp
inc dword [ebp + 0x151113c9]
add dword [eax], eax
add eax, 0x335e5f00
rcr byte [ebx - 0x75], 0x19
pop ebp
ret 0x2a0c
mov cl, byte [ebx + 0x2c]
test cl, cl
je 0x40b03f
mov edx, dword [ebx + 0x4b]
mov edi, dword [esi]
push edi
mov dword [ebp - 4], eax
mov dword [eax], esi
clc
xor al, bh
call fcn.0040a2d0
cmp dword [ebx - 0x1c], 1
jne 0x40af66
push ebx
call fcn.0040b2d0
mov eax, dword [0x87c89c9]
leave
mov dword [eax + ecx + 0x3b], edi
invalid
je 0x40af5d
leave
mov dword [eax + ecx + 0x3b], edi
sal dword [ebp + edx - 0x75], 0x43
pop ebx
mov eax, dword [ebx + 0x5b]
add eax, 0xffd1c3e8
dec dword [ebx + 0x5e5f0845]
pop ebx
mov esp, ebp
pop ebp
or al, 0
inc ebp
dec ebx
cmp al, 0x89
dec ebx
jbe 0x40aeed
dec ebx
inc esp
js 0x40af2c
or byte [eax], al
std
sti
add byte [0xf876b103], bl
test dword [edx], ecx
fld qword [esi + 0x9d]
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ebx + 0x44]
or al, 0x72
aaa
mov eax, dword [ebx - 0x7e]
mov esp, dword [esi - 0xbb272c8]
push edx
push eax
push ecx
cwde
call 0x134b02d
mov ecx, dword [ebp - 0x63]
xor edx, edx
add esp, 0x10
cmp esi, dword [ecx + 0x74344589]
mov esi, dword fs:[ebx - 0x4f]
mov edx, edi
push esp
add esi, ecx
cmovnp esp, edi
adc eax, edx
mov ebp, 0xc1892899
push esp
adc dl, byte [ebx + 0x54]
mov edx, dword [ebx + 0x3c]
mov eax, dword [ebx + 0x44]
sub eax, edx
cmp edi, eax
ja 0x40afc9
jno 0x40af90
les esi, [ebx + 0x38]
mov ecx, ebp
cld
mov ecx, eax
and al, 0xf2
mov edx, ecx
or eax, 0xeff302e9
mov ecx, edx
mov edx, dword [ebp - 4]
xor dword [ecx + 3], 0x31
xchg ecx, eax
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebx - 0x80]
mov ecx, dword [ebp - 8]
test eax, 0x8bc82b7d
mov eax, dword [ebp + 8]
mov dword [ebx + 0xe], esi
mov esi, dword [ebp + 0x10]
mov dword [0x89c085fc], edi
dec ebp
mov dh, 0xf
test byte [eax - 1], ch
or ebp, dword [eax]
mov edx, dword [esi]
lea ecx, [edx + 0xc]
push ecx
push edx
push eax
mov ebp, eax
xor esp, dword [ebp + ecx*8]
add esp, 0x10
cmp eax, 0x1116f
mov dword [ebx + 8], eax
jne 0x40b099
mov dword [ebx + 0x28], 1
mov eax, dword [ebp + 0xc]
pop edi
mov dword [esi], eax
cmp al, 0x62
or byte [esi + 0x5b], bl
pop ss
in eax, 0x5d
ret 0xc
add byte [ebp + 0x71], dh
mov al, byte [esi + 8]
add al, 0xc0
je 0x40b10d
mov esi, ecx
add al, 0x8d
int3
jne 0x40b0d2
mov ecx, dword [ebp + 0x14]
pop edi
jnp 0x40b058
add dword [ebx + 0x5bbffc3], ebx
cmp ah, 0xa
add byte [0x760a0fed], bh
jne 0x40b0e5
invalid
mov eax, 0x20117e
mov ecx, dword [ebp - 0x59]
stosb byte es:[edi], al
pop esi
mov dword [ecx], 0
pop ebp
ret
mov eax, dword [esi + 0xc]
test eax, eax
je 0x40b0c7
cmp dword [esi + 0x22], ecx
test cl, cl
inc edi
mov ecx, dword [esi + 0x50]
mov dword [eax + 8], ecx
mov eax, dword [esi - 0x10]
mov edx, dword [esi + 0x54]
mov ecx, 0x20
call 0x41453b
mov edx, dword [esi + 0x5d]
add byte [eax], al
add al, ch
or dl, byte [eax + eax + 0x5d568b00]
mov ebx, edi
add ecx, dword [ebx + 0x558b0c46]
jns 0x40b191
lea ecx, [ebp + 0x10]
push eax
mov edi, dword [edx + 0x52ce51b6]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x40b15a
xor eax, eax
jmp 0x45b285
mov edi, dword [0x354f98]
call edi
test dword [ebp + edi + 5], esi
sbb ebp, dword [edx]
add byte [eax], al
call edi
add eax, 0x52fc11
jne 0x40b129
add byte [ebx], cl
pop eax
xor eax, 0xd385
add byte [ebp + ebx - 0x67bf5164], bl
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
test dword [0x47f168b], esi
aam 0x1a
inc esp
adc byte [edx], ch
push 0xabbc03e8
push ecx
push eax
call 0xd640b590
jmp 0x40b1af
mov edx, edi
or al, 0x50
shr dword [eax], 0x10
push edx
call ebx
mov edi, eax
sbb dword [eax + eax*4 - 0x32], 0xbf740000
or edi, edi
je 0x40b1f8
mov eax, dword [0x41e8f5]
mov ebx, dword [esi + 4]
test eax, eax
jne 0x40b1eb
push eax
push 0x1add00ec
mov ch, al
popal
or edi, edi
inc dword [ebx + 0x60a332c4]
or dword [ecx - 0x32], eax
test eax, eax
je 0x40b1f0
push ebx
call eax
jmp 0x40b1f8
push 1
call dword [0x40cf4c]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
lea ebp, [eax + 0x10]
push 1
push eax
push ecx
push edx
call dword [0x5d40ad11]
test eax, eax
je 0x40b214
xor eax, eax
jmp 0x40b285
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
test eax, eax
je 0x40b285
invalid
mov ecx, dword [ebp - 0x73]
test dword [ecx], ecx
jne 0x40b29e
mov ecx, dword [ebp + 0x10558b14]
pop ebx
pop edi
mov eax, 0x1117e
mov dword [ecx], edx
pop esi
cmovae ecx, dword [ebx - 0x2db2f3aa]
je 0x40b2bd
mov edx, dword [esi + 0xc]
dec ebp
sal byte [eax + ebx + 0x31], cl
push esi
or byte [edx + edx*8 + 0x56881175], al
push eax
xor dword [esi + 8], edx
test dl, dl
jne 0x40b2bd
mov byte [esi + 0x50], dl
stc
ror dword [ebx - 0x2e7ca3b2], 1
add byte [ecx + 0x4e895056], cl
push esp
mov ecx, dword [ebp + 0x14]
mov edi, dword [ecx + 0x10]
pop ebx
add eax, 0x5d5e1189
ret