Function at 0x414f80
Capabilities:
Create pipe
Generate random numbers via winapi
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xd0
mov esi, esp
mov dword [esi + 0xb8], ebp
mov dword [esi + 0xbc], esp
mov dword [esi + 0xc8], 0xffffffff
mov dword [esi + 0xc4], 0x41c880
mov dword [esi + 0x4c], ecx
lea eax, [esi + 0xc0]
xor ebx, ebx
lea edi, [esi + 0x1c]
mov dword [esi + 0xa4], edx
mov dword [esi + 0x50], 8
mov dword [esi + 0x9c], 0
mov ecx, dword fs:[0]
mov dword [esi + 0xc0], ecx
mov dword fs:[0], eax
mov eax, 0x40080002
sub eax, edx
mov dword [esi + 0xa8], eax
mov al, 1
mov dword [esi + 0xc], eax
jmp 0x41500c
mov bl, 1
mov dword [esi + 0xc], 0
lea edi, [esi + 0x1c]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [esi + 0xb0], eax
mov eax, dword [0x446a44]
test eax, eax
jne 0x415061
nop word cs:[eax + eax]
nop dword [eax + eax]
xorps xmm0, xmm0
movaps xmmword [esi + 0x30], xmm0
push 2
push 0x10
lea eax, [esi + 0x30]
push eax
push 0
call dword [sym.imp.bcrypt.dll_BCryptGenRandom]
test eax, eax
jne 0x4156f2
mov eax, dword [esi + 0x30]
xchg dword [0x446a44], eax
mov eax, dword [0x446a44]
test eax, eax
je 0x415030
mov eax, 1
lock xadd dword [0x446a44], eax
mov dword [esi + 0x78], 0x43b9fc
mov dword [esi + 0x7c], 2
mov dword [esi + 0x80], 0
mov byte [esi + 0xa], bl
mov byte [esi + 0xb], 1
mov dword [esi + 0xc8], 1
mov dword [esi + 0x68], eax
lea eax, [esi + 0xb0]
mov dword [esi + 0x30], eax
lea eax, [esi + 0x68]
mov dword [esi + 0x34], fcn.00428730
mov dword [esi + 0x38], eax
lea eax, [esi + 0x30]
mov dword [esi + 0x3c], fcn.00428730
mov dword [esi + 0x88], eax
lea eax, [esi + 0x78]
mov dword [esi + 0x8c], 2
push eax
push edi
call fcn.00423b80
add esp, 8
movsd xmm0, qword [esi + 0x1c]
mov eax, dword [esi + 0x24]
test byte [esi + 0xc], 1
movsd qword [esi + 0x78], xmm0
mov dword [esi + 0x80], eax
jne 0x415105
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x415105
push 1
push eax
push dword [esi + 0x58]
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 0x80]
movsd xmm0, qword [esi + 0x78]
mov dword [esi + 0xc], 0
mov dword [esi + 0x60], eax
movsd qword [esi + 0x58], xmm0
mov edx, dword [esi + 0x58]
lea ecx, [edx + eax]
test edx, edx
mov dword [esi + 0x54], ecx
mov ecx, 8
je 0x415160
test eax, eax
mov dword [esi + 0x14], 4
je 0x415167
mov cl, byte [edx]
mov ebx, edx
movzx edi, cl
test cl, cl
js 0x41517c
inc ebx
xor edx, edx
mov dword [esi + 0x10], ebx
jmp 0x415210
mov dword [esi + 0x14], 4
mov dword [esi + 0x28], 0
xor ebx, ebx
mov dword [esi + 0x10], 0
jmp 0x415257
movzx edx, byte [ebx + 1]
and edi, 0x1f
and edx, 0x3f
cmp cl, 0xdf
jbe 0x4151c0
movzx eax, byte [ebx + 2]
shl edx, 6
and eax, 0x3f
or eax, edx
cmp cl, 0xf0
jb 0x4151d7
movzx ecx, byte [ebx + 3]
and edi, 7
shl eax, 6
add ebx, 4
shl edi, 0x12
mov dword [esi + 0x10], ebx
and ecx, 0x3f
or ecx, eax
or edi, ecx
cmp edi, 0xffff
jbe 0x4151d3
jmp 0x4151ea
shl edi, 6
add ebx, 2
mov dword [esi + 0x10], ebx
or edi, edx
cmp edi, 0xffff
ja 0x4151ea
xor edx, edx
jmp 0x415210
shl edi, 0xc
add ebx, 3
mov dword [esi + 0x10], ebx
or edi, eax
cmp edi, 0xffff
jbe 0x4151d3
add edi, 0xffff0000
mov eax, edi
and edi, 0x3ff
shr eax, 0xa
or edi, 0xdc00
or eax, 0xd800
mov edx, edi
mov edi, eax
nop word [eax + eax]
mov eax, dword [esi + 0x54]
mov ecx, 0xffffffff
mov dword [esi + 0xc], edx
mov dword [esi + 0x28], 1
sub eax, dword [esi + 0x10]
add eax, 3
cmovb eax, ecx
shr eax, 2
cmp dx, 1
sbb eax, 0xffffffff
cmp eax, 3
jb 0x415250
lea ecx, [eax + eax + 4]
test ecx, ecx
js 0x41576c
mov ebx, edi
add eax, 2
mov dword [esi + 0x14], eax
jmp 0x415257
mov ebx, edi
mov ecx, 8
push 2
push ecx
mov edi, ecx
call fcn.00402f90
add esp, 8
test eax, eax
je 0x415757
mov ecx, dword [esi + 0x9c]
mov word [eax], bx
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
mov dword [esi + 0x1c], eax
mov dword [esi + 0xa0], eax
mov dword [esi + 0x18], 1
inc ecx
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], 1
mov dword [esi + 0xac], ecx
mov ecx, ebx
jmp 0x4152c7
mov eax, dword [esi + 0xa0]
mov ebx, edi
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 0x18]
mov dword [esi + 0xa0], eax
mov word [eax + edi*2], dx
inc edi
mov edx, dword [esi + 0x2c]
mov dword [esi + 0xc], edx
mov dword [esi + 0x18], edi
mov edi, ebx
mov ebx, dword [esi + 0x10]
test ecx, ecx
je 0x4152e0
xor edx, edx
cmp word [esi + 0xc], 0
je 0x415340
mov dword [esi + 0x2c], 0
jmp 0x415305
mov edx, ebx
cmp word [esi + 0x28], 1
jne 0x415490
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], 0
mov ebx, edx
xor ecx, ecx
mov dword [esi + 0xc], 0
cmp dword [esi + 0x18], edi
mov dword [esi + 0x10], ebx
jne 0x4152a0
test ebx, ebx
je 0x415362
mov eax, dword [esi + 0x54]
mov ecx, 0xffffffff
sub eax, ebx
add eax, 3
cmovb eax, ecx
shr eax, 2
cmp word [esi + 0x2c], 1
sbb eax, 0xffffffff
cmp word [esi + 0x28], 1
sbb eax, 0xffffffff
inc eax
add eax, edi
jae 0x415375
jmp 0x4156b0
cmp dword [esi + 0x54], ecx
je 0x4152e2
movzx ebx, byte [ecx]
movzx edx, bl
test bl, bl
js 0x4153e4
inc ecx
mov dword [esi + 0xc], edx
mov dword [esi + 0x2c], 0
mov ebx, ecx
jmp 0x415305
xor eax, eax
cmp word [esi + 0x28], 0
setne al
inc eax
add eax, edi
jb 0x4156b0
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x14], edi
lea edi, [ecx + ecx]
cmp edi, eax
ja 0x415384
mov edi, eax
cmp edi, 5
jae 0x41538e
mov edi, 4
mov edx, edi
xor eax, eax
add edx, edi
setae al
add eax, eax
test ecx, ecx
je 0x4153af
mov ebx, dword [esi + 0x1c]
add ecx, ecx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x7c], ecx
mov ecx, 2
jmp 0x4153b1
xor ecx, ecx
lea ebx, [esi + 0x78]
mov dword [esi + 0x80], ecx
lea ecx, [esi + 0x30]
push ebx
push eax
call fcn.00408730
add esp, 8
cmp dword [esi + 0x30], 0
jne 0x4156bf
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x10]
mov ebx, edi
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], edi
jmp 0x4152a8
mov dword [esi + 0x14], edi
movzx edi, byte [ecx + 1]
and edx, 0x1f
and edi, 0x3f
cmp bl, 0xdf
jbe 0x41541e
movzx eax, byte [ecx + 2]
shl edi, 6
and eax, 0x3f
or eax, edi
cmp bl, 0xf0
jb 0x415444
movzx edi, byte [ecx + 3]
and edx, 7
shl eax, 6
add ecx, 4
shl edx, 0x12
and edi, 0x3f
or edi, eax
jmp 0x415424
add ecx, 2
shl edx, 6
or edx, edi
mov edi, dword [esi + 0x14]
mov ebx, ecx
cmp edx, 0xffff
ja 0x415459
mov dword [esi + 0xc], edx
mov ecx, ebx
mov dword [esi + 0x2c], 0
jmp 0x415305
shl edx, 0xc
add ecx, 3
or edx, eax
mov edi, dword [esi + 0x14]
mov ebx, ecx
cmp edx, 0xffff
jbe 0x415433
add edx, 0xffff0000
mov ecx, ebx
mov eax, edx
and edx, 0x3ff
shr eax, 0xa
or edx, 0xdc00
mov dword [esi + 0x2c], edx
or eax, 0xd800
mov edx, eax
mov dword [esi + 0xc], edx
jmp 0x415305
movsd xmm0, qword [esi + 0x1c]
mov eax, dword [esi + 0x18]
movsd qword [esi + 0x68], xmm0
mov dword [esi + 0x70], eax
mov edi, dword [esi + 0x68]
push 0
push 0
push 0x10000
push 0x10000
push 1
push dword [esi + 0x50]
push dword [esi + 0xa8]
push edi
call dword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
mov ebx, eax
cmp eax, 0xffffffff
jne 0x415586
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 0xac]
cmp ecx, 0xa
jge 0x415526
cmp eax, 5
jne 0x4154f0
mov dword [esi + 0x9c], ecx
jmp 0x415502
cmp dword [esi + 0x50], 0
je 0x415526
cmp eax, 0x57
mov dword [esi + 0x50], 0
jne 0x415526
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x415000
add eax, eax
je 0x415000
push 2
push eax
push edi
call fcn.00402fa0
add esp, 0xc
jmp 0x415000
mov ecx, dword [esi + 0x4c]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x6c]
mov dword [ecx + 4], 0
mov dword [ecx], 1
test eax, eax
je 0x415550
add eax, eax
je 0x415550
push 2
push eax
push edi
call fcn.00402fa0
add esp, 0xc
mov ecx, dword [esi + 0x58]
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x415566
push 1
push eax
push ecx
call fcn.00402fa0
add esp, 0xc
cmp ebx, 0xffffffff
je 0x415572
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0xc0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x4155a7
add eax, eax
je 0x4155a7
push 2
push eax
push edi
call fcn.00402fa0
add esp, 0xc
mov dword [esi + 0xc8], 1
mov eax, dword [esi + 0xa4]
mov dword [esi + 0x78], 0
mov dword [esi + 0x7c], 0
mov dword [esi + 0x84], 0
mov dword [esi + 0x94], 0
mov word [esi + 0x98], 0
mov dword [esi + 0x8c], 0
mov edx, dword [esi + 0x58]
lea edi, [esi + 0x78]
mov dword [esi + 0x1c], 0xc
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 1
mov dword [esi + 0xc], ebx
mov dword [esi + 0xb4], ebx
mov byte [esi + 0xa], 1
mov byte [esi + 0xb], 0
mov dword [esi + 0xc8], 1
lea ecx, [esi + 0x30]
mov byte [esi + 0x95], al
xor al, 1
mov dword [esi + 0x18], edx
mov byte [esi + 0x94], al
lea eax, [esi + 0x1c]
mov dword [esi + 0x88], 0
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x60]
push edi
push eax
call fcn.004137f0
add esp, 8
cmp dword [esi + 0x30], 0
je 0x41567d
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x4c]
mov eax, dword [esi + 0x34]
mov ebx, dword [esi + 0xc]
mov dword [edx + 8], ecx
mov ecx, dword [esi + 0x18]
mov dword [edx + 4], eax
mov dword [edx], 1
mov eax, dword [esi + 0x5c]
test eax, eax
jne 0x41555a
jmp 0x415566
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x4c]
mov edx, dword [esi + 0xc]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x5c]
mov dword [ecx], 0
test eax, eax
je 0x415572
push 1
push eax
push dword [esi + 0x18]
call fcn.00402fa0
add esp, 0xc
jmp 0x415572
mov dword [esi + 0x24], edi
mov dword [esi + 0xc8], 2
jmp 0x4156d9
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x38]
mov dword [esi + 0xc8], 2
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x34]
test ecx, ecx
jne 0x4156e3
call fcn.00423790
jmp 0x415779
push ecx
push eax
call fcn.00438290
add esp, 8
jmp 0x415779
mov dword [esi + 0xc], ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0x20], eax
lea eax, [esi + 0x68]
mov dword [esi + 0x68], edi
mov dword [esi + 0x78], 0x43bb58
mov dword [esi + 0x7c], 1
mov dword [esi + 0x80], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x6c], 0x40a410
mov dword [esi + 0xc8], 3
mov dword [esi + 0x88], eax
mov dword [esi + 0x8c], 1
push 0x43bb84
lea eax, [esi + 0x78]
push eax
call fcn.00438410
add esp, 8
jmp 0x415779
mov byte [esi + 0xa], 1
mov byte [esi + 0xb], 1
push 2
push edi
call fcn.00438290
add esp, 8
jmp 0x415779
mov byte [esi + 0xa], 1
mov byte [esi + 0xb], 1
call fcn.00423790
ud2