Function at 0x40b080
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x10]
mov eax, dword [esi - 1]
mov esp, esi
or eax, ecx
in eax, dx
xchg dword [eax], edx
add byte [eax], al
add byte [eax], al
jne 0x40b10d
mov al, byte [esi + 8]
pop ebx
inc edx
je 0x40b10d
mov edx, dword [esi + 4]
cdq
dec ebp
bound edi, qword [edx]
push ecx
push 0
push 0
push 0
fdiv st(7), st(0)
adc eax, 0x40a30c
test eax, eax
call 0xcf763bf5
rol byte [eax], 0xff
salc
test dword [esi + 0x6b], esi
or dword [ebx + 0x5e5f144d], ecx
mov dword [ecx], eax
pop ebp
ret
mov eax, dword [esi + 0xc]
test dword [eax + 0x4e8a2b74], edi
or byte [ecx + ecx*8 + 0x49521c75], al
push eax
mov dword [eax + 8], ecx
mov ebx, dword [esi]
push eax
daa
outsb dx, byte [esi]
mov ecx, 0xe820
call fcn.0040b810
shl eax, 0xc
mov dword [edx - 0x1c], eax
push eax
inc esi
out dx, al
mov edx, dword [ebp + 0xc]
push ebx
xchg ecx, eax
dec ebp
adc byte [eax - 0x75], dl
inc esi
add al, 0x51
push edi
push edx
push esp
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, 0x380774c0
shr cl, 0x2b
add dword [eax], eax
add byte [ebx + 0x40c0f83d], cl
jns 0x40b160
call edi
xlatb
test eax, eax
je 0xc6b285
call edi
add eax, 0xafc80
cmp eax, 0xed001b
jne 0x40b25e
mov ebx, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
and eax, 0x468b14e7
push ss
test dword [ebx + 0x7c], edx
push ss
jg 0x40b192
test eax, eax
jbe 0x40b1a2
adc byte [ebx + esi*2 + 0x68], ah
jae 0x40b1fd
call 0x8b40b19d
push eax
call fcn.0040b590
jmp 0x40b1af
and eax, ecx
cmp eax, 0xffffffff
jne 0x40b1ad
or eax, eax
jmp 0x40b1af
sub al, al
mov ecx, dword [esi + 6]
push eax
mov edx, dword [ecx - 3]
push edx
call ebx
mov edi, eax
xor dword [ecx - 0x80], 0x74069e00
mov edi, 0x3174ff85
mov eax, dword [0x410960]
mov ebx, dword [esi + 4]
je 0x40b191
jns 0x40b1eb
mov dh, 0x81
in al, dx
add byte [ecx], al
push eax
call fcn.0040a940
add esp, 0xffffffff
mov dword [0xfe0960], eax
sal byte cs:[eax + esi + 0x53], 0xcb
shr bl, 1
or byte [edx + 0x41], ch
adc dword [0x440c04c], 0x8b0c4e8b
push esi
push ebx
retf
add al, 0x8d
inc ebp
adc byte [edx + 0x52], ch
push eax
ja 0x40b258
call dword [esi + 0x7b40c0b4]
test eax, eax
je 0x40b214
sub al, al
jmp 0x40b285
mov ebx, dword [0x40c0d7]
call ebx
test eax, eax
fldenv [ebp - 1]
cmc
add eax, 0x4c0afc80
cmp eax, 0xb0064
je 0x40b235
cmp eax, 0x30063
jne 0x40b24f
cmp eax, 0xe102
jne 0x40b24f
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
jns 0x40b2a4
mov eax, 0x13677
mov dword [ecx], edx
stc
pop ebp
ret
cmp eax, 0xafced
jne 0x40b268
mov ecx, dword [ebp + 0x14]
mov esi, ecx
adc al, 0x8b
int1
mov ds, word [ebx + 0x5f]
mov eax, 0xf2117e
mov dword [ecx], edx
pop esi
pop ebp
ret
cmp eax, 0xafca6
ljmp 0x558b
mov ecx, dword [ebp + 0x10]
test dword [edx + 0x4d8b1275], ebp
int 0x8b
push ebp
adc byte [ebx + 0x5f], bl
jle 0x40b2a8
add dword [eax], eax
add byte [ecx], dl
pop esi
pop ebp
ret
sbb byte [edx - 0x2d7bf7aa], cl
test dl, dl
jne 0x40b2bd
mov edx, dword [esi + 0x50]
add edx, ecx
mov ebp, dword [esp + edx*2 - 0x7d]
rol dword [eax], 1
mov dword [esi - 0x78], edx
mov dword [esi + 0x68], ecx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
pop ebx
pop edi
aaa
adc dword [esi + 0x78], ebx
ret