Function at 0x40a098
Capabilities:
Create pipe

Disassembly:
push ecx
push ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
add eax, 0xfffffbe2
mov edx, dword [esp + 0x1c]
push ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
add ebx, 0xfffff30e
push ebp
push esi
mov eax, edx
mov dword [esp + 0x20], ebx
xor eax, 0x1943
mov esi, ecx
push edi
mov dword [esp + 0x30], eax
lea edi, [ecx - 0x1038]
mov ecx, dword [esp + 0x20]
lea eax, [ebx + 0xe54]
mov ebp, edx
mov dword [esp + 0x14], edi
xor esi, 0x1038
xor ebp, 0x1b8
mov dword [esp + 0x10], esi
cmp ecx, eax
jg 0x40a432
mov ebx, dword [esp + 0x1c]
lea eax, [edx + 0x8a3]
cmp esi, eax
jge 0x40a1fd
push ebx
lea eax, [ecx + 0x10a]
xor edx, 0x227
mov ecx, dword [esp + 0x34]
push eax
push edx
mov eax, ecx
xor eax, 0x767
push eax
lea eax, [ecx - 0x790]
push eax
mov eax, dword [esp + 0x38]
add eax, 0x1038
push eax
mov eax, dword [esp + 0x38]
xor eax, 0x1faa
push eax
call fcn.00408eae
mov ecx, dword [esp + 0x40]
mov ebp, eax
push 0x679af0
mov eax, ecx
xor ecx, 0xe21
xor eax, 0x1170
push eax
mov eax, dword [esp + 0x44]
add eax, 0x867
push ecx
push eax
lea eax, [ebp + 0x8bf]
push eax
lea eax, [edi + 0x15b1]
push eax
mov eax, dword [esp + 0x64]
xor eax, 0x751
push eax
call fcn.00401e67
mov eax, dword [ebx + 0x104]
add esp, 0x38
cmp eax, dword [ebx + 0xec]
je 0x40a1ae
mov eax, dword [0x584ab4]
mov eax, dword [eax + 0x7c]
add eax, 0x5bc4f
xor dword [ebx + 0x10c], eax
mov ecx, dword [esp + 0x30]
mov eax, ebp
xor eax, 0x1967
push eax
lea eax, [esi + 0x1595]
push eax
push ebx
mov eax, ebp
xor eax, 0x1b8
push eax
mov eax, ecx
xor eax, 0x1cc
push eax
lea eax, [ebp + 0x476]
push eax
lea eax, [ecx - 0x6dc]
push eax
call fcn.0040997e
mov edx, eax
add esp, 0x1c
mov eax, dword [esp + 0x24]
add esi, 0xe21
mov dword [esp + 0x2c], edx
jmp 0x40a338
mov eax, dword [ebx + 0x130]
or eax, dword [0x679bb8]
add eax, ecx
mov dword [esp + 0x2c], esi
xor dword [ebx + 0x50], eax
mov eax, ecx
mov ecx, dword [0x584ab4]
sub eax, dword [ecx + 0xd0]
and eax, esi
push eax
mov eax, dword [ebx + 0x114]
xor eax, dword [0x679c0c]
push eax
mov eax, dword [ebx + 0xa8]
xor eax, esi
sub eax, 0x1075
push eax
mov eax, dword [esp + 0x3c]
and eax, 0x1168
sub eax, ebp
push eax
mov eax, dword [0x679bd0]
and eax, dword [0x679b90]
push eax
mov eax, dword [ecx + 0x84]
and eax, dword [0x679b40]
push eax
mov eax, dword [ebx + 0x74]
add eax, dword [esp + 0x3c]
or eax, dword [ecx + 0x98]
push eax
mov eax, dword [ecx + 0x100]
and eax, dword [esp + 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateNamedPipeA]
mov eax, dword [ebx + 0xc]
and eax, dword [esp + 0x20]
mov ecx, dword [0x584ab4]
push eax
mov eax, dword [ebx + 0xbc]
xor eax, dword [esp + 0x24]
xor eax, 0x147d
push eax
mov eax, dword [ecx + 8]
or eax, dword [ebx + 0x80]
push eax
mov eax, ebp
and eax, 0x13d6
push eax
mov eax, dword [esp + 0x34]
xor eax, esi
mov esi, 0x1595
push eax
mov eax, dword [ebx + 0xd8]
sub eax, esi
and eax, dword [esp + 0x38]
push eax
mov eax, edi
sub eax, ebp
or eax, 0xe54
push eax
mov eax, dword [ecx + 0xd4]
and eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov eax, dword [0x584ab4]
mov edi, dword [ebx + 0x8c]
mov edx, dword [ebx + 0x7c]
or edi, dword [esp + 0x14]
mov esi, dword [eax + 0x7c]
add edi, 0xe21
xor edx, dword [esp + 0x10]
mov eax, dword [ebx + 0x34]
add edx, 0xd4a
mov ecx, dword [ebx + 8]
add eax, 0x1038
and esi, dword [esp + 0x10]
add ecx, ebp
imul eax, eax, 0x147d
push ebx
push eax
push ecx
push edx
push esi
push edi
call fcn.00409b43
mov esi, dword [esp + 0x28]
add esp, 0x18
mov edi, dword [esp + 0x14]
mov edx, esi
mov ecx, edx
xor ecx, 0x1e6c
cmp dword [esp + 0x20], ecx
je 0x40a432
mov ecx, ebp
xor ecx, 0x2ef
cmp eax, ecx
jge 0x40a40f
mov eax, dword [ebx + 0x128]
mov esi, dword [0x584ab4]
xor eax, 0x3ece0384
mov dword [0x679b4c], eax
mov eax, dword [ebx + 0xc8]
sub eax, 0x14
mov dword [0x679bec], eax
mov ecx, dword [esi + 0x58]
cmp ecx, dword [ebx + 0x5c]
ja 0x40a3f2
mov eax, ecx
imul eax, ecx
add dword [esi + 0xfc], eax
mov eax, 0xbdcf
sub eax, dword [ebx + 0xec]
sub eax, dword [ebx + 0x1c]
add dword [0x679bc8], eax
mov eax, dword [0x679b9c]
add eax, 0xfffffff1
imul eax, dword [ebx + 0x40]
mov dword [ebx + 0x40], eax
mov eax, dword [0x679bb4]
add eax, 0xfffffff6
imul eax, dword [ebx + 0xac]
mov dword [ebx + 0xac], eax
mov eax, dword [0x584ab4]
mov eax, dword [eax + 0x84]
xor eax, 1
imul eax, dword [ebx + 0x104]
inc ecx
mov dword [ebx + 0x104], eax
cmp ecx, dword [ebx + 0x5c]
ja 0x40a3f2
mov esi, dword [0x584ab4]
jmp 0x40a386
mov eax, dword [ebx + 0x7c]
xor eax, dword [0x679b04]
sub eax, 0x158ef2
imul eax, dword [ebx + 0xfc]
mov dword [ebx + 0xfc], eax
jmp 0x40a432
and ebp, 0xd4a
cmp esi, ebp
jl 0x40a432
xor edi, 0x15
and edi, 0x1075
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc esi
cmp esi, ebp
jge 0x40a422
mov edx, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
lea eax, [edx + 0x314]
pop ebx
pop ecx
pop ecx
ret