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 + 0x10]
mov ecx, dword [esi + 0x14]
or eax, ecx
mov dword [ebp - 0x47], 0x1f9d00d9
jne 0x40b10d
mov al, byte [esi + 8]
test al, al
je 0x40b10d
mov edx, dword [esi + 4]
lea ecx, [ebp + 8]
push 0
push ecx
push 0
push 0xffffffffffffff87
push 0
jae 0x40b0b3
invalid
or al, 0xc0
inc eax
add byte [ebp - 0x74ca8a40], al
xor eax, 0x40c022
dec dword [edx]
test eax, eax
jne 0x40b0d2
mov ecx, dword [ebp + 9]
invalid
call esi
dec esi
cmp ah, 0xa
xor dword [0xa9ded], edi
jne 0x40b0e5
mov eax, 0x9801117e
mov ecx, dword [ebp + 0x14]
lahf
adc al, bh
add dword [eax], eax
inc ebx
int1
add byte [ebp - 0x3d], bl
std
popfd
or byte [ebp - 0x6ef1d040], al
push ebp
adc al, 0xa6
pop esi
mov dword [edx], eax
mov eax, 0x79000b
pop ebp
ret
mov dword [0xc01b0c46], eax
je 0x40b169
cmp eax, 0xdd110879
jne 0x40b0cc
mov ecx, dword [eax + 0x50]
pop ecx
dec eax
or byte [ebx + 0x568b5046], cl
push esp
mov ecx, 0x2c
call 0xc1eb10
jno 0x40b189
or al, 0x89
inc edx
or al, 0x8b
inc esi
or al, 0x8b
push ebp
jne 0x40b189
stosd dword es:[edi], eax
dec ebp
lahf
pushal
mov esp, esi
add al, 0x51
push edi
out dx, eax
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test dword [ecx], ebp
je 0x40b15a
xor eax, eax
jmp 0x40b285
mov edi, dword [0xa440c098]
call edi
in eax, dx
ror byte [edi], 0x84
sbb eax, dword [ecx]
add byte [eax], al
adc dl, bh
add byte [edx], dl
xlatb
add eax, 0xafc80
cmp eax, 0xf75565
cmovae edx, ebx
jnp 0x40b184
add byte [ebx + 0x40c09c1d], cl
add byte [ebx + 0x598bbe4e], cl
adc byte [ebp + 0x7f167c50], al
add al, 0x85
sal byte [esi + 0x10], 0x6a
add byte [eax - 0x18], ch
add eax, dword [eax]
in al, dx
mov esi, 0x8510598b
push eax
jl 0x40b1a2
jg 0x40b192
test eax, eax
jbe 0x40b1a2
push 0
push 0xec0003e8
push ecx
jno 0x40b184
lock add eax, dword [eax]
mov ebp, 0xc1230deb
and eax, ecx
cmp eax, 0xffffffff
jne 0x40b1ad
or eax, eax
xchg ebp, eax
add dh, byte [ebx]
ror byte [ebx - 0x74aff3b2], 0xb
xor eax, eax
mov ecx, dword [esi + 0xc]
push eax
mov ecx, dword [ebx]
adc byte [edx - 1], dl
ror dword [edx], cl
inc dword [ecx + 0xfd80ff]
xor dword [edi + edi*4 - 0x7b], 0xa13174ac
pushal
or dword [eax], esp
add byte [ebx - 0x3f7afba2], cl
jne 0x40b1eb
push eax
push ebx
in al, dx
add byte [ecx], al
push eax
call 0x6a940
add esp, 0xc
mov dword [0x41e060], eax
test eax, eax
je 0x40b1f0
push ecx
sub edx, eax
mov bh, 8
push 1
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
pop es
inc ebp
adc byte [edx + 0x72], ch
push eax
lds edx, [edx - 0x3f]
adc eax, 0xc14077b4
test eax, eax
je 0x40b214
xor esi, dword [ebp - 0x4f748e15]
cwde
shl byte [edi], 0xff
rol dword [ebp - 0x9a8b2e], cl
rol dword [0x8ffcb4], cl
mov esi, dword [eax + 0x67c098]
call ebx
test edx, edx
je 0x40b285
call ebx
add eax, 0x8ffcb4
cmp eax, 0xb0064
je 0x40b2aa
cmp eax, 0xac00c2
jne 0x40b24f
sub eax, 0x6f0102ff
add byte [ebp + 0x74], dh
jecxz 0x40b28c
adc al, 0x8b
nop
adc byte [ebx + 0x5f], bl
mov eax, 0x11177
loopne 0x40b25d
pop esi
pop ebp
ret
cmp eax, 0xafced
jne 0x40b268
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
pop ebx
pop edi
mov eax, 0xa4a0117e
mov dword [ecx], edx
pop esi
pop ebp
ret
cmp eax, 0x42dffca6
jne 0x40b281
mov esi, dword [ecx + 0x14]
arpl cx, di
adc byte [ebx + 0x30], bl
mov eax, 0x8401117e
mov dword [ecx], edx
push ebx
pop ebp
ret
test eax, eax
jne 0x40b2bd
mov ecx, dword [ebp + 0x10]
stc
leave
rcl byte [edx], cl
mov ecx, edx
adc al, 0x8b
push ebp
adc byte [ebx + 0x5f], bl
mov eax, 0x1117e
mov dword [ecx], edx
pop esi
jne 0x40b2bd
mov edx, dword [esi + 0x50]
add edx, ecx
mov ecx, dword [esi + 0x16]
adc ecx, 0xd
mov dword [esi + 0x50], edx
mov dword [esi + 0x54], ecx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
pop ebx
popal
mov dword [ecx], edx
fnsave dword [edi - 0x3d]
nop
nop
nop
nop
mov eax, dword [0x51ec4a55]
push ebp
dec edx
in al, dx
push ecx