Function at 0x40b080
Capabilities:
Read file on windows
Read pipe

Disassembly:
ror dword [ecx - 0x38f88bfa], 0xd0
or byte [eax], al
add byte [eax], al
add byte [ebx - 0x17afa7bd], cl
mov esi, 0x8bfffff3
xor ecx, dword [eax]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push ebp
mov ebp, esp
push esi
xchg edi, eax
jne 0x40b0ed
push edi
jge 0x40b01e
mov eax, dword [esi - 0x21]
mov ecx, dword [esi + 0x14]
mov byte [edi + 0x1045c7], ch
add byte [eax], al
add byte [ebp + 0x71], dh
mov al, byte [esi + 8]
test byte [esi], bl
je 0x40b08b
fst dword [esi + 4]
sub dword [ebp + 8], ecx
push 0
push ecx
push 0
push 0xffffffffffffff9f
push 0x12
push edx
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
jne 0x40b0f2
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
retf
add byte [eax], al
add byte [ebp - 0x3d], bl
mov eax, dword [ebp + 8]
test dword [esi], eax
jne 0x40b107
mov edx, dword [ebp + 0x14]
pop edi
pop esi
sub al, byte [edx]
mov eax, 0xb
pop ebp
fimul dword [edx - 8]
dec edx
clc
jbe 0x40b10d
mov ebp, edx
mov eax, dword [esi + 0xc]
test eax, eax
je 0x40b137
mov cl, byte [esi + 8]
test cl, cl
jne 0x40b137
jns 0x40b16b
push eax
mov dword [eax + 0x64], ecx
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x54]
cmpsd dword [esi], dword es:[edi]
and byte [eax], al
add bl, cl
xchg edx, eax
fild word [esi]
add byte [edi - 0x75], bl
push esi
or al, 0x89
pop ebp
or al, 0x8d
inc esi
and dword [ebx - 0x72acf3ab], ecx
lea ebx, [ebx + 0x5f468b50]
lea eax, [esi + 0x21]
mov edx, dword [ebp + 0xc]
push ebx
lea ecx, [ebp + 0x468b509b]
pop edi
and al, 0x9c
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x40b15a
xor eax, eax
jmp 0x40b285
bound edi, qword [0x6a40c0fc]
salc
xlatb
int3
xlatb
add eax, 0xde24fc80
cmp eax, 0xb0063
jne 0x40b24f
push ecx
sbb eax, 0x40c07d
mov ecx, dword [esi + 0x14]
sbb al, 0x46
adc byte [ebp + 0x7f160760], al
add al, 0x6a
sal byte [esi + 0x10], 0x6a
add byte [eax - 0x18], ch
add edx, dword [eax]
push ecx
and ah, byte [0xde0003f0]
jmp 0x40b1af
mov ecx, dword [esi + 0xc]
push eax
mov edx, dword [ecx + 0x10]
push edx
call ebx
mov edi, eax
cmp edi, 0x46a4
movsb byte es:[edi], byte [esi]
inc esi
add byte [eax], al
salc
mov edi, 0x3174ff85
stc
pushal
or dword [ebp - 0x10], edx
mov ebx, dword [esi + 4]
test eax, eax
jne 0x40b22f
push eax
pop ecx
in al, dx
lodsd eax, dword [esi]
inc ecx
add byte [ebx - 0x89e18], dh
inc dword [ebx + 0x60a30c49]
or dword [ecx], eax
test eax, eax
je 0x40b1f0
push ebx
push dword [ebx + 0x16a52eb]
push 1
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esi + 0x43]
mov ebx, dword [ebp + 4]
lea eax, [ebp + 0x10]
push 1
push eax
push ecx
push edx
int1
jmp 0x40b1bd
arpl di, sp
or eax, dword [eax]
cmp ebx, dword [edx]
imul edi, edi, 0x102
jne 0x40b24f
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
pop ebx
pop edi
add al, 0x77
adc dword [ecx], eax
mov esp, ebx
pop esi
cwde
ret
cmp eax, 0xafc39
jne 0x40b268
xor dword [ebp + 0x14], ecx
mov edx, dword [ebp + 0x10]
pop ebx
pop edi
sar byte [esi + 0x11], cl
add dword [eax], eax
mov dword [ecx], edx
pop esi
pop ebp
ret
cmp eax, 0x5a0afc0f
jne 0x40b281
mov esi, dword [ebp - 0x72]
mov edx, dword [ebp + 0x10]
pop ebx
pop edi
mov eax, 0x7301117e
movsb byte es:[edi], byte [esi]
adc dword [esi + 0x5d], ebx
ret
test eax, eax
mov dword [0x104d4338], eax
mov ecx, 0x8b1275c9
inc ebx
dec ebp
adc byte [ecx - 0x74ed8a37], bh
dec ebp
adc al, 0x8b
push ebp
adc byte [ebx + 1], bl