Function at 0x40b080
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
add ecx, dword [ebx + 0x4656c97d]
adc byte [ebx - 0x3ef4ebb2], cl
mov dword [ebp + 0x10], 0xeaf300
jne 0x40b10d
mov al, byte [esi - 0x41]
test al, al
inc eax
push 0xffffffffffffff8b
add al, 4
lea ecx, [ebp + 8]
push 0xffffffffffffff8f
push ecx
push 0
push 0x42
push 0x57
push edx
call dword [0x10c0e5]
test eax, eax
rcl ebp, 1
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jne 0x40b09c
mov ecx, dword [ebp + 0x14]
pop edi
pop esi
mov dword [ecx], eax
pop ebp
popal
invalid
mov eax, dword [esi + 0xc]
test dword [esi], ecx
je 0x40b137
mov dh, byte [eax + 8]
test cl, cl
mov ebx, dword [ebx + ecx*4]
dec esi
push eax
pop esp
dec eax
or byte [ebx + 0x568b5065], cl
push esp
mov ecx, 0xab0020
push ss
fild word [esi]
add byte [eax], al
mov edx, dword [esi + 0xc]
cwde
inc edx
or al, 0x8b
inc esi
or al, 0x8b
push ebp
jb 0x40b191
mov eax, dword [esi + 0xc]
mov edx, dword [ebp + 0x72]
push ebx
lea ebx, [ebx + 0x468b8010]
popal
push ecx
nop
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x40b15a
xor eax, eax
jmp 0x93b285
mov edi, dword [0xa9c098]
call edi
and eax, eax
je 0x40b285
call edi
add eax, 0xafc80
cmp eax, 0xdf0b0065
femms
rol dword [eax], cl
add byte [eax], al
mov esp, esi
pushfd
rol byte [eax], 0x8b
dec esi
adc al, 0x8b
inc esi
lahf
test ecx, ecx
jl 0x40b1a2
adc al, 4
test dword [edx + 0x76], ebp
adc byte [edx], ch
push esp
call 0x5141129d
push eax
call fcn.0040b590
jmp 0x40b20e
and eax, ecx
cmp dword [ecx + edx*8 + 0x75], 4
cwde
ror byte [ecx + ecx*2 + 0x33], 0xc0
mov ecx, dword [esi + 0xc]
push eax
or eax, 0xff52100c
ror dword [ebx + 0x4af081f8], cl
add byte [eax], al
add byte [edi + edi*4 - 0x7b], dh
push dword [ebp + esi*2 - 0x5f]
stosb byte es:[edi], al
or dword [ecx], eax
mov ebx, dword [esi - 0x2c]
or eax, 0xd59d75c0
push str.CancelIo
push eax
call 0x7040a940
add esp, 0xc
mov dword [0x412f60], eax
test eax, eax
mov ebx, 0xd0ff5312
jmp 0x40b1f8
mov ecx, dword [esi - 0x55]
mov edx, dword [esi + 0x63]
stosb byte es:[edi], al
dec ecx
adc byte [edx - 0x1a], ch
push eax
push ecx
movsd dword es:[edi], dword [esi]
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
je 0x40b214
out dx, eax
shr bl, 0x71
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
test eax, eax
je 0x40b285
call ebx
add byte [eax + 0x3d000afc], 0xd1
lds ecx, [ebx]
popal
je 0x40b294
cmp eax, 0xb0063
jne 0x40b24f
cmp edi, 0x102
jne 0x40b24f
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x66]
pop ebx
pop edi
mov eax, 0x11177
mov dword [ecx], edx
pop esi
int1
ret
cmp eax, 0x80fc51
jne 0x40b268
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
in eax, dx
pop edi
mov eax, 0xda01117e
sub edx, dword [ecx]
pop esi
mov eax, dword [0xfca63dc3]
or al, byte [eax]
cmp eax, 0xafca6
jne 0x40b281
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
pop ebx
xchg ecx, eax
mov eax, 0x1117e
mov dword [ecx], edx
pop esi
pop ebp
ret
fadd st(0)
jne 0x40b2bd
mov ecx, dword [ebp + 0x10]
test ecx, ecx
jne 0x40b29d
mov esp, dword [edx]
adc al, 0x8b
push ebp
adc byte [ebx + 0x227efe5f], dl
add dword [eax], eax
mov dword [edx], ecx
rcr esi, 1
invalid
ret
mov ebp, ebx
adc al, 0x8b
sbb eax, 0x895f5b10
xchg ebp, eax
pop esi
push ecx
cmc
nop
mov ebx, 0x9090d454
push ebp
mov ebp, esp
push ecx
push esi
mov esi, dword [ebp + 8]
mov bl, dh
sub al, 0x9f
rcr ah, 0x84
mov esi, 0x8b000000
dec esi
dec eax
or eax, eax
push ebx
xor dword [edi], 1
push edi
jmp 0x40b2e6