Function at 0x402752
Capabilities:
Create pipe
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ecx
push ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
push ebx
mov ebx, dword [esp + 0x28]
add eax, 0x9c0
push ebp
push esi
mov esi, dword [esp + 0x18]
lea ebp, [edx - 0x1184]
xor ebx, 0x2409
mov dword [esp + 0x30], eax
push edi
lea eax, [ecx - 0x443]
mov dword [esp + 0x10], ebp
mov edi, ecx
mov dword [esp + 0x30], eax
mov eax, dword [0x49e0e4]
lea ecx, [ebx + 0x1718]
xor edi, 0x3b97
xor esi, 0x14b
add edx, 0xffffed82
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x28], edx
cmp dword [esp + 0x34], ecx
jl 0x402a6b
mov edi, dword [esp + 0x2c]
xor ebp, ebp
mov dword [eax + 0x9c], 0x49e0e8
mov dword [esp + 0x34], ecx
mov ecx, dword [0x49e0e4]
mov ebx, dword [edi + 0x5c]
mov eax, dword [ecx + 0x9c]
mov edx, dword [eax + ebp]
add ebp, 4
mov eax, dword [ecx + 0x38]
add dword [edi + 0x1c], eax
mov eax, dword [0x49e0e4]
imul ebx, edx
mov edx, 0x4caf7
mov ecx, dword [eax + 0xd8]
mov eax, dword [edi + 0x88]
add ecx, 0xffed615a
add eax, ecx
add dword [edi + 0x70], eax
mov ecx, dword [0x49e0e4]
mov eax, dword [edi + 0xcc]
sub eax, dword [ecx + 0xa0]
add eax, 5
imul eax, dword [ecx + 0x38]
mov dword [ecx + 0x38], eax
mov eax, dword [0x49e0e4]
mov ecx, dword [eax + 0xa4]
mov eax, dword [edi + 0x60]
mov byte [ecx + eax], bl
inc dword [edi + 0x60]
mov eax, dword [edi + 0x90]
sub eax, dword [edi + 0x28]
xor eax, dword [edi + 0x88]
xor eax, edx
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x44]
dec eax
xor dword [0x4a4da0], eax
mov eax, dword [edi + 0x38]
imul eax, dword [edi + 0xcc]
mov dword [edi + 0x38], eax
add dword [0x4a4d3c], eax
mov ecx, dword [edi + 0x90]
mov eax, ecx
xor eax, 0x4caf6
imul eax, dword [edi + 0x1c]
mov dword [edi + 0x1c], eax
mov eax, dword [edi + 0x68]
xor eax, ecx
sub eax, edx
xor dword [edi + 0x38], eax
mov eax, dword [edi + 0xb4]
xor eax, dword [0x4a4d14]
xor dword [edi + 0xa0], eax
mov ecx, dword [0x49e0e4]
mov eax, dword [edi + 0xe4]
sub eax, 0x78d27
imul eax, dword [ecx + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [0x49e0e4]
mov ecx, dword [eax + 0xe4]
mov eax, dword [eax + 0x44]
add eax, 0xfff872d8
add eax, ecx
imul eax, dword [edi + 0xa0]
mov dword [edi + 0xa0], eax
mov eax, dword [edi + 0x10]
imul eax, dword [edi + 0x98]
mov dword [edi + 0x10], eax
mov edx, dword [0x49e0e4]
mov eax, dword [edx + 0x70]
add eax, 0xffffffa4
add eax, dword [edx + 0xd8]
or dword [edx + 0x28], eax
cmp ebp, 0x69f0
jl 0x4027d8
mov eax, dword [0x4a4da8]
add eax, 0x85c
mov dword [edi + 0x5c], eax
mov eax, dword [edi + 0x10]
sub eax, dword [0x4a4d34]
mov ecx, dword [0x49e0e4]
sub eax, 0x3b246a40
add dword [ecx + 0x5c], eax
mov eax, dword [edi + 0x3c]
cmp eax, dword [0x4a4d20]
jne 0x402950
mov eax, dword [edi + 0x54]
xor eax, dword [edi + 0x68]
add eax, dword [edi + 0x38]
sub dword [edi + 0x1c], eax
jmp 0x40295a
mov dword [0x4a4d94], 0x47a100
mov ebp, dword [esp + 0x10]
xor esi, esi
mov eax, dword [0x49e0e4]
mov ecx, dword [0x4a4d3c]
push 5
sub ecx, dword [eax + 0xcc]
or dword [edi + 0x7c], ecx
mov eax, dword [0x49e0e4]
mov ecx, dword [edi + 0xa4]
mov eax, dword [eax + 0x9c]
mov ebx, dword [eax + esi]
add esi, 4
mov eax, dword [edi + 0x38]
sub dword [edi + 0x98], eax
mov eax, dword [edi + 0xa0]
sub eax, dword [edi + 0x10]
imul ebx, dword [edi + 0x5c]
xor eax, 0xffef4f4a
sub dword [edi + 0xe4], eax
pop eax
sub eax, dword [0x4a4d98]
add dword [edi + 0x68], eax
mov eax, dword [0x49e0e4]
mov edx, ebx
shr edx, 0x10
mov eax, dword [eax + 0xb0]
add dword [edi + 0x54], eax
mov eax, dword [edi + 0x60]
mov byte [ecx + eax], dl
mov ecx, ebx
inc dword [edi + 0x60]
mov eax, dword [0x4a4ddc]
mov edx, dword [edi + 0x60]
add eax, 0xfff872d9
imul eax, dword [edi + 0xa0]
shr ecx, 8
mov dword [edi + 0xa0], eax
mov eax, dword [edi + 0xa4]
mov byte [edx + eax], cl
inc dword [edi + 0x60]
mov eax, dword [edi + 0x7c]
add eax, dword [0x4a4d14]
mov ecx, dword [edi + 0x60]
xor eax, 0xfffd43e5
sub dword [edi + 0x54], eax
mov eax, dword [0x49e0e4]
mov eax, dword [eax + 0xa4]
mov byte [ecx + eax], bl
inc dword [edi + 0x60]
mov ecx, dword [0x49e0e4]
mov eax, dword [ecx + 0x28]
xor dword [0x4a4d90], eax
mov eax, dword [edi + 0x10]
sub eax, 0x10b0bb
xor dword [ecx + 0xa0], eax
xor ecx, ecx
mov eax, dword [0x49e0e4]
inc ecx
sub ecx, dword [eax + 0xcc]
add dword [edi + 0x28], ecx
cmp esi, 0x3500
jl 0x402960
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
jmp 0x402be3
mov eax, dword [eax + 0x74]
imul eax, edi
mov edi, dword [esp + 0x2c]
imul eax, eax, 0x250c
xor edx, eax
mov eax, dword [0x4a4d30]
xor eax, edx
mov dword [esp + 0x28], edx
push eax
mov eax, dword [edi + 4]
add eax, dword [0x4a4d74]
or eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_GetHandleInformation]
mov eax, dword [0x4a4d08]
sub eax, dword [esp + 0x30]
mov edx, dword [0x49e0e4]
mov ecx, dword [edi + 0xb4]
imul eax, eax, 0x1e68
sub ecx, ebx
push edx
mov esi, dword [edx + 0x80]
add ecx, 0x1ce6
or esi, 0x25d7
push eax
lea eax, [ebx + 0x2394]
or eax, 0x25d7
push eax
mov eax, dword [esp + 0x3c]
or eax, dword [esp + 0x34]
xor eax, dword [esp + 0x40]
push ecx
push eax
push esi
call fcn.004014ba
mov ecx, dword [0x4a4d34]
mov esi, dword [edi + 0x7c]
or ecx, 0x170c
add ecx, dword [0x4a4d90]
xor esi, ebx
sub esi, dword [edi + 0x68]
mov dword [esp + 0x48], eax
mov eax, dword [0x49e0e4]
mov edx, dword [eax + 0x74]
mov eax, ebp
xor edx, dword [edi + 0x84]
xor eax, 0x291d
push eax
mov eax, dword [esp + 0x4c]
xor edx, ebp
and eax, dword [esp + 0x38]
or eax, dword [esp + 0x44]
push eax
push ecx
push edx
push esi
push edi
call fcn.0040af98
mov ecx, dword [edi + 0x24]
add esp, 0x30
mov edx, dword [esp + 0x14]
mov esi, eax
add ecx, edx
mov dword [esp + 0x1c], eax
push ecx
mov ecx, dword [edi + 0xa0]
add ecx, dword [edi + 0x98]
add ecx, dword [edi + 0x90]
push ecx
mov ecx, dword [0x49e0e4]
mov eax, dword [ecx + 0x20]
or eax, 0x2c13
push eax
mov eax, dword [edi + 0xb4]
add eax, ebp
xor eax, dword [0x4a4d14]
push eax
mov eax, dword [edi + 0x20]
and eax, 0x249c
push eax
mov eax, dword [edi + 0x78]
imul eax, dword [edi + 0x3c]
push eax
mov eax, dword [ecx + 0x70]
and eax, dword [ecx + 0x44]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_CreateNamedPipeA]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
xor eax, ebx
add eax, dword [edi + 0xc8]
push eax
mov eax, ecx
imul eax, esi
or eax, ebx
push eax
mov eax, dword [edi + 0x78]
imul eax, ecx
or eax, ebx
push eax
mov eax, dword [edi + 0x3c]
add eax, 0x25d7
xor eax, ecx
push eax
mov eax, dword [edi + 0x10]
xor eax, esi
push eax
mov eax, dword [0x4a4cf8]
and eax, ecx
push eax
mov eax, dword [edi + 0x44]
or eax, dword [edi + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ecx, dword [esp + 0x28]
lea eax, [ecx - 0x66]
cmp dword [esp + 0x30], eax
jge 0x402d65
mov eax, ebp
xor eax, 0x369c
cmp esi, eax
jge 0x402d42
mov eax, dword [edi + 0xcc]
sub eax, 0x73ecade4
cmp dword [edi + 4], 0x3b76
mov dword [edi + 0x5c], eax
je 0x402c24
mov dword [edi + 0x9c], section..data
mov ecx, dword [edi + 0x10]
xor ebp, ebp
mov edx, dword [edi + 0x7c]
mov eax, dword [edi + 0xb0]
xor eax, ecx
mov dword [edi + 0x10], eax
mov eax, dword [edi + 0x90]
sub eax, 0x4caf6
imul eax, edx
mov dword [edi + 0x7c], eax
mov eax, dword [edi + 0x9c]
mov ebx, dword [eax + ebp]
add ebp, 4
imul ebx, dword [0x4a4d54]
mov eax, dword [0x49e0e4]
mov ecx, dword [eax + 0xa4]
mov edx, ebx
mov eax, dword [0x4a4d58]
shr edx, 8
mov byte [eax + ecx], dl
inc dword [0x4a4d58]
mov eax, dword [0x49e0e4]
mov ecx, dword [eax + 0xa4]
mov eax, dword [edi + 0x60]
mov byte [ecx + eax], bl
mov ecx, dword [edi + 0xcc]
xor ecx, dword [edi + 0x10]
inc dword [edi + 0x60]
sub ecx, 0x10b0b9
imul ecx, dword [edi + 0x88]
mov dword [edi + 0x88], ecx
mov eax, dword [0x4a4d68]
sub eax, dword [edi + 0xb0]
sub eax, 0x5c
xor dword [edi + 0xb4], eax
mov eax, dword [0x49e0e4]
mov eax, dword [eax + 0x3c]
add eax, dword [edi + 0x38]
xor eax, ecx
xor eax, 0x12
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x3c]
sub eax, dword [edi + 0x54]
mov ecx, dword [0x49e0e4]
xor eax, 0xffffffbf
add dword [0x4a4d08], eax
mov eax, dword [edi + 0xb4]
or dword [ecx + 0x1c], eax
xor eax, eax
mov edx, dword [edi + 0x7c]
inc eax
sub eax, dword [edi + 0x98]
add dword [edi + 0x90], eax
mov eax, dword [0x49e0e4]
mov ecx, dword [edi + 0x10]
mov eax, dword [eax + 0x38]
add eax, edx
xor eax, 0xfffd43e5
add dword [edi + 0xb4], eax
mov eax, dword [0x4a4dac]
xor eax, ecx
sub eax, 0x10b0ba
imul eax, dword [edi + 0xcc]
mov dword [edi + 0xcc], eax
cmp ebp, 0x2bc8
jl 0x402c2c
jmp 0x402d65
mov esi, ecx
sub esi, dword [esp + 0x1c]
imul esi, ecx
jmp 0x402d61
mov eax, dword [0x49e0e4]
mov eax, dword [eax + 0x7c]
xor eax, ebx
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add ebp, 3
cmp ebp, esi
je 0x402d4d
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebp
add eax, 0x289
pop ebx
pop ecx
pop ecx
ret