Function at 0x4044a0
Capabilities:
Create pipe
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x431be7
mov eax, dword fs:[0]
push eax
mov eax, 0x13dc
call fcn.00417e60
mov eax, dword [0x4460f4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
dec eax
cmp eax, 0x102
ja 0x40450c
lea eax, [ebp - 0x218]
push 0x5c
push eax
call fcn.00419feb
add esp, 8
test eax, eax
je 0x40450c
xor ecx, ecx
mov word [eax + 2], cx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x1364]
call fcn.00402850
push 0xa
push 0x43350c
lea ecx, [ebp - 0x1364]
mov dword [ebp - 4], 0
call fcn.00404190
call fcn.00405360
mov ecx, eax
test ecx, ecx
jne 0x40454c
push 0x80004005
call fcn.00404370
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1368], eax
push esi
push dword [ebp - 0x1364]
lea eax, [ebp - 0x1368]
mov byte [ebp - 4], 1
push str.__s___accepteula__a__s
push eax
call fcn.00405260
add esp, 0x10
mov dword [ebp - 0x13d4], 0xc
lea eax, [ebp - 0x13d4]
mov dword [ebp - 0x13d0], 0
mov dword [ebp - 0x13cc], 1
push 0
push eax
lea eax, [ebp - 0x135c]
push eax
lea eax, [ebp - 0x1360]
push eax
call dword [sym.imp.KERNEL32.dll_CreatePipe]
mov edi, dword [ebp - 0x1368]
or ebx, 0xffffffff
test eax, eax
je 0x404c8b
push dword [ebp - 0x135c]
push edi
call fcn.004043b0
add esp, 8
test eax, eax
jne 0x4045f3
push dword [ebp - 0x135c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x1360]
call esi
jmp 0x404c8b
push 0x1000
lea eax, [ebp - 0x1218]
push 0
push eax
call fcn.0041ad60
lea ecx, [ebp - 0x1218]
add esp, 0xc
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404612
sub ecx, edx
lea eax, [ebp - 0x1218]
push ecx
push 0
push eax
call fcn.0041ad60
add esp, 0xc
lea eax, [ebp - 0x1384]
push 0
push eax
push 0xfff
lea eax, [ebp - 0x1218]
push eax
push dword [ebp - 0x1360]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0x135c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, eax
call esi
push dword [ebp - 0x1360]
call esi
test ebx, ebx
je 0x404c88
cmp dword [ebp - 0x1384], 0
je 0x404c88
lea eax, [ebp - 0x1348]
mov dword [ebp - 0x134c], eax
lea ecx, [ebp - 0x134c]
push 3
lea eax, [ebp - 0x1218]
push eax
call fcn.00405450
push dword [ebp - 0x134c]
lea ecx, [ebp - 0x1350]
mov byte [ebp - 4], 2
call fcn.00402850
mov eax, dword [ebp - 0x134c]
lea ecx, [ebp - 0x1348]
mov byte [ebp - 4], 4
cmp eax, ecx
je 0x4046cd
push eax
call fcn.0041d363
add esp, 4
mov eax, dword [ebp - 0x1350]
cmp dword [eax - 0xc], 0
jge 0x4046de
or ecx, 0xffffffff
jmp 0x404701
push str._r_n_r_n
push eax
call fcn.0041a08c
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x1350]
test ecx, ecx
jne 0x4046fd
or ecx, 0xffffffff
jmp 0x404701
sub ecx, eax
sar ecx, 1
mov eax, dword [eax - 0xc]
sub eax, ecx
lea ecx, [ebp - 0x1350]
sub eax, 4
push eax
lea eax, [ebp - 0x1358]
push eax
call fcn.00405890
push eax
lea ecx, [ebp - 0x1350]
mov byte [ebp - 4], 5
call fcn.00403840
mov edx, dword [ebp - 0x1358]
or ebx, 0xffffffff
mov byte [ebp - 4], 4
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404750
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x1374], 0
mov dword [ebp - 0x1370], 0
mov dword [ebp - 0x136c], 0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x1350]
cmp dword [eax - 0xc], 0
jge 0x404783
or eax, 0xffffffff
jmp 0x4047a2
push 0x433560
push eax
call fcn.0041a08c
add esp, 8
test eax, eax
jne 0x40479a
or eax, 0xffffffff
jmp 0x4047a2
sub eax, dword [ebp - 0x1350]
sar eax, 1
cmp eax, 0xffffffff
je 0x404c08
add eax, 2
lea ecx, [ebp - 0x1350]
push eax
mov dword [ebp - 0x138c], eax
lea eax, [ebp - 0x1388]
push eax
call fcn.00405520
mov esi, dword [ebp - 0x1388]
xor eax, eax
mov dword [ebp - 0x121c], 7
mov dword [ebp - 0x1220], 0
mov word [ebp - 0x1230], ax
mov byte [ebp - 4], 7
cmp word [esi], ax
jne 0x4047f7
xor ecx, ecx
jmp 0x40480f
mov ecx, esi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404800
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x1230]
call fcn.0040a540
push 1
push str.__.w___spid:_s_d__stype:_s_w__s_w_:_s
lea ecx, [ebp - 0x13e8]
mov byte [ebp - 4], 8
call fcn.00402c30
xorps xmm0, xmm0
mov dword [ebp - 0x13c8], 0
mov byte [ebp - 0x13c4], 0
movups xmmword [ebp - 0x13c0], xmm0
mov dword [ebp - 0x13b0], 0
mov byte [ebp - 0x13ac], 0
mov dword [ebp - 0x13a8], 0
mov dword [ebp - 0x13a4], 0
mov byte [ebp - 0x13a0], 0
mov dword [ebp - 0x139c], 0
mov dword [ebp - 0x1398], 0
mov byte [ebp - 0x1394], 0
mov ebx, dword [ebp - 0x121c]
lea eax, [ebp - 0x1230]
mov edx, dword [ebp - 0x1230]
lea ecx, [ebp - 0x1230]
cmp ebx, 8
mov byte [ebp - 4], 0xa
cmovae eax, edx
cmovae ecx, edx
mov dword [ebp - 0x1354], eax
mov eax, dword [ebp - 0x1220]
push dword [ebp - 0x1354]
push 0
lea eax, [ecx + eax*2]
lea ecx, [ebp - 0x1230]
cmovae ecx, edx
lea edx, [ebp - 0x13e8]
push edx
lea edx, [ebp - 0x13c8]
push edx
push eax
push ecx
call fcn.00401ea0
mov ebx, dword [ebp - 0x13c0]
add esp, 0x18
test al, al
je 0x404add
mov ecx, dword [ebp - 0x13bc]
mov eax, 0x2aaaaaab
sub ecx, ebx
imul ecx
lea ecx, [ebp - 0x139c]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1354], eax
cmp eax, 3
jbe 0x40492b
lea ecx, [ebx + 0x24]
lea eax, [ebp - 0x1248]
push eax
call fcn.0040b630
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 0xb
jb 0x404943
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x1358]
call fcn.00402850
mov eax, dword [ebp - 0x1234]
mov byte [ebp - 4], 0xd
cmp eax, 8
jb 0x404971
inc eax
lea ecx, [ebp - 0x1248]
push eax
push dword [ebp - 0x1248]
call fcn.0040a750
xor eax, eax
mov dword [ebp - 0x1234], 7
lea ecx, [ebp - 0x1358]
mov dword [ebp - 0x1238], 0
mov word [ebp - 0x1248], ax
call fcn.00405630
lea eax, [ebp - 0x1358]
push str.file
push eax
call fcn.00403b70
add esp, 8
test al, al
je 0x404abb
lea ecx, [ebp - 0x1380]
call fcn.00402ec0
cmp dword [ebp - 0x1354], 1
lea ecx, [ebp - 0x139c]
mov byte [ebp - 4], 0xe
jbe 0x4049d6
lea ecx, [ebx + 0xc]
lea eax, [ebp - 0x1248]
push eax
call fcn.0040b630
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 0xf
jb 0x4049ee
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x1380]
call fcn.004038b0
lea ecx, [ebp - 0x1248]
mov byte [ebp - 4], 0xe
call fcn.00403500
lea ecx, [ebp - 0x1380]
call fcn.00405630
cmp dword [ebp - 0x1354], 2
lea ecx, [ebp - 0x139c]
jbe 0x404a26
lea ecx, [ebx + 0x18]
lea eax, [ebp - 0x1248]
push eax
call fcn.0040b630
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 0x10
jb 0x404a3e
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x137c]
call fcn.004038b0
lea ecx, [ebp - 0x1248]
mov byte [ebp - 4], 0xe
call fcn.00403500
cmp dword [ebp - 0x1354], 4
lea ecx, [ebp - 0x139c]
jbe 0x404a6b
lea ecx, [ebx + 0x30]
lea eax, [ebp - 0x1248]
push eax
call fcn.0040b630
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 0x11
jb 0x404a83
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x1378]
call fcn.004038b0
lea ecx, [ebp - 0x1248]
mov byte [ebp - 4], 0xe
call fcn.00403500
lea eax, [ebp - 0x1380]
push eax
lea ecx, [ebp - 0x1374]
call fcn.00404010
lea ecx, [ebp - 0x1380]
call fcn.00403630
mov edx, dword [ebp - 0x1358]
or eax, 0xffffffff
mov byte [ebp - 4], 0xa
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404add
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x1350]
lea ecx, [ebp - 0x1350]
mov eax, dword [eax - 0xc]
sub eax, dword [ebp - 0x138c]
push eax
lea eax, [ebp - 0x1390]
push eax
call fcn.00405890
push eax
lea ecx, [ebp - 0x1350]
mov byte [ebp - 4], 0x12
call fcn.00403840
mov edx, dword [ebp - 0x1390]
or eax, 0xffffffff
mov byte [ebp - 4], 0xa
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404b31
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test ebx, ebx
je 0x404b5a
mov ecx, dword [ebp - 0x13b8]
mov eax, 0x2aaaaaab
sub ecx, ebx
imul ecx
lea ecx, [ebp - 0x13c0]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ebx
call fcn.0040a7b0
mov ecx, dword [ebp - 0x13e8]
or ebx, 0xffffffff
test ecx, ecx
je 0x404b80
mov eax, ebx
lock xadd dword [ecx + 0x20], eax
jne 0x404b80
push 0
push dword [ebp - 0x13e8]
call fcn.004078a0
add esp, 8
mov dword [ebp - 0x13e8], 0
mov ecx, dword [ebp - 0x13d8]
mov byte [ebp - 4], 0x13
test ecx, ecx
je 0x404ba9
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x404ba9
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov eax, dword [ebp - 0x121c]
cmp eax, 8
jb 0x404bc7
inc eax
lea ecx, [ebp - 0x1230]
push eax
push dword [ebp - 0x1230]
call fcn.0040a750
xor eax, eax
mov dword [ebp - 0x121c], 7
mov word [ebp - 0x1230], ax
add esi, 0xfffffff0
mov dword [ebp - 0x1220], 0
mov eax, ebx
mov byte [ebp - 4], 6
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x404772
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x404772
mov eax, dword [ebp - 0x1370]
xor esi, esi
test eax, eax
jle 0x404c40
xor ebx, ebx
test ebx, ebx
js 0x404c77
cmp esi, eax
jge 0x404c77
mov eax, dword [ebp - 0x1374]
add eax, ebx
push eax
call fcn.00404d70
mov eax, dword [ebp - 0x1370]
inc esi
add esp, 4
add ebx, 0xc
cmp esi, eax
jl 0x404c16
or ebx, 0xffffffff
mov esi, 1
lea ecx, [ebp - 0x1374]
mov byte [ebp - 4], 0x14
call fcn.004057e0
mov edx, dword [ebp - 0x1350]
mov eax, ebx
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404c8d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x404c8d
push 0
push 0
push 1
push 0xc000008c
call dword [sym.imp.KERNEL32.dll_RaiseException]
or ebx, 0xffffffff
xor esi, esi
mov byte [ebp - 4], 0
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x404ca8
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x1364]
mov dword [ebp - 4], 0xffffffff
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x404cca
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00417e4f
mov esp, ebp
pop ebp
ret