Function at 0x100158b9
Capabilities:
Create pipe

Disassembly:
mov eax, 0x1005af6d
call fcn.1005a3a0
sub esp, 0xe8
cmp byte [ebp + 0x28], 0
mov eax, ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov edi, edx
mov dword [ebp - 0x20], eax
je 0x10015f1b
mov dword [ebp - 0x1c], 0xffffffff
xor ebx, ebx
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x14], ebx
jmp 0x10015903
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x2c], 0xe8cff0ea
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x100158f5
mov dword [ebp - 0x14], 0x39a
cmp dword [ebp - 0x14], 0x506
jle 0x1001597b
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], 0xccf
mov edi, ebx
mov ecx, edi
mov eax, esi
sar eax, cl
lea ecx, [ebp - 0xf4]
cdq
push edx
push eax
call fcn.10001365
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10015948
mov eax, dword [eax]
push eax
call fcn.100439ae
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xf4]
call fcn.10001636
inc edi
cmp edi, 0x2732
jl 0x1001592a
dec esi
dec dword [ebp - 0x24]
jne 0x10015928
mov esi, dword [ebp - 0x1c]
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x3f5
jl 0x1001591e
mov dword [ebp - 0x2c], 0xfffffff3
jmp 0x1001598c
cmp dword [ebp - 0x2c], ebx
jne 0x10015992
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xfffffffb
je 0x10015984
cmp dword [ebp - 0x14], 0x191
jge 0x100159a6
push str.hvz_gbs_ljmqo_zmitfxql_gtnvz_lbe
call fcn.100439ae
pop ecx
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
add eax, 0xee76
cmp eax, 0xfffffffd
je 0x100159bd
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], 0x17e5
xor edx, edx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setne dl
sub eax, edx
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x28]
jg 0x100159ef
cmp dword [ebp - 0x1c], ebx
jne 0x100159ef
mov eax, ebx
jmp 0x100159f2
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x2c]
sub ecx, 9
add ecx, eax
mov eax, dword [ebp - 0x2c]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x2c]
setl dl
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x70], 0xd3c15d0d
mov dword [ebp - 0x6c], 0x592758e9
mov dword [ebp - 0x14], ebx
jmp 0x10015a3d
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa0], 6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10015a2c
push ecx
push 0x2a99
push 0x17a6
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.100156f3
add esp, 0x14
mov dword [ebp - 0x30], 0x11
jmp 0x10015ae8
push ecx
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x58], 0xffffffff
push eax
push 0x662f
lea eax, [ebp - 0x70]
mov dword [ebp - 0x34], 4
push eax
push 0x6c9b
push 1
push 0x5e98
push 0x5397
lea eax, [ebp - 0x30]
mov edx, 0x4f1a
push eax
lea eax, [ebp - 0x34]
push eax
push 0x5a7f
push 0x46de
push 0x3b0c
push 0x56bf
lea ecx, [ebp - 0x58]
call fcn.100157cf
add esp, 0x38
mov dword [ebp - 0x34], ebx
jmp 0x10015adf
mov dword [ebp - 0x20], 0xfffffffa
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0xa0], ecx
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 1
jle 0x10015ac5
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0x23
je 0x10015a67
push 0x7c
pop eax
mov dword [ebp - 0x48], 0x303ef00
mov word [ebp - 0x44], 0x4e05
mov word [ebp - 0x40], ax
mov dword [ebp - 0x20], 1
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], bl
je 0x10015b29
push ebx
push ebx
push 0x1ea2
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetScrollInfo]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], bl
je 0x10015b46
push ecx
push 0x4a8f
push 0x28fb
mov cl, 1
call fcn.1001605c
add esp, 0xc
push 2
mov ecx, ebx
pop esi
mov dword [ebp - 0x54], ecx
cmp esi, 2
jne 0x10015b5d
push 4
pop ecx
push ecx
mov dword [ebp - 0x54], ecx
pop esi
jmp 0x10015b9b
movzx edx, byte [ebp + esi - 0x47]
mov eax, esi
sub eax, ecx
push 0x4f9f
push 0x513f
movzx eax, byte [ebp + eax - 0x4a]
movzx ecx, word [ebp + eax*2 - 0x40]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x48]
add ecx, edx
lea edx, [ebp - 0x54]
mov word [ebp + eax*2 - 0x40], cx
call fcn.1001815f
pop ecx
pop ecx
mov ecx, dword [ebp - 0x54]
add esi, 2
cmp esi, 6
jb 0x10015b4e
xor eax, eax
mov word [ebp - 0x3e], ax
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x1c], 0x5381
cmp dword [ebp - 0x1c], 0x5398
jle 0x10015c20
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x24], 0x597e
mov dword [ebp - 0x20], ebx
mov eax, edi
mov ecx, 0x10074fb8
cdq
idiv ebx
mov eax, edx
cdq
push edx
push eax
call fcn.1000333f
inc ebx
cmp ebx, 0x5373
jl 0x10015bca
add edi, esi
dec dword [ebp - 0x24]
push 0
pop ebx
jne 0x10015bc7
inc esi
cmp esi, 0x2e12
jl 0x10015bbe
push ebx
push 0x9e0
push 0x1c1
push 0x2112
push 0x23a1
push 0x1532
push 0x136
push ebx
call dword [sym.imp.KERNEL32.dll_CreateNamedPipeA]
push 1
lea ecx, [ebp - 0x94]
call fcn.100014a1
mov dword [ebp - 4], 2
mov byte [ebp - 4], 3
cmp dword [ebp - 0x1c], 0x5043
jge 0x10015c6e
mov edx, str.aibucsi_edovg_bummqo_lddkg_zuecbynp_nilzm_suewb_yqxrjm_cjeeh_vijzikkbj_xco_yuzyr
mov ecx, 0x10074fb8
call fcn.1000494d
jmp 0x10015c6e
mov dword [ebp - 4], 2
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x20], 0x48110cbb
mov dword [ebp - 0x38], ebx
jmp 0x10015c9f
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax*4 - 0xdc], 1
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 3
jl 0x10015c8e
push ecx
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x38]
push eax
push 1
push 0x4af5
call fcn.100156f3
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0x94]
add esp, 0x14
mov dword [eax], 0xfffffffd
mov eax, dword [ebp - 0x14]
test eax, eax
setle cl
sub ecx, 0x8a52
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
setge dl
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x14]
neg eax
sbb eax, eax
xor edx, edx
neg eax
add ecx, eax
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setg dl
sub eax, edx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
je 0x10015d28
cmp dword [ebp - 0x14], ebx
je 0x10015d28
xor ecx, ecx
inc ecx
jmp 0x10015d2a
mov ecx, ebx
mov esi, 0xc0272a72
xor edx, edx
mov dword [ebp - 0xdc], esi
mov eax, dword [ebp - 0x1c]
imul eax, ecx
cmp eax, esi
mov eax, dword [ebp - 0x1c]
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x1c], eax
jne 0x10015d61
cmp dword [ebp - 0x24], ebx
je 0x10015d61
xor ecx, ecx
inc ecx
jmp 0x10015d63
mov ecx, ebx
xor eax, eax
test ecx, ecx
lea ecx, [ebp - 0x94]
setne al
imul eax, eax, 0x2305
mov dword [ebp - 0x20], eax
or dword [ebp - 4], 0xffffffff
call fcn.100014fe
xor eax, eax
mov dword [ebp - 0xbc], 7
mov word [ebp - 0xd0], ax
lea ecx, [ebp - 0xd0]
lea eax, [ebp - 0x40]
mov dword [ebp - 0xc0], ebx
push eax
call fcn.10019651
mov edx, dword [ebp + 0x20]
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0x88]
mov dword [ebp - 4], 5
call fcn.10015613
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 7
call fcn.100017a2
push 1
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x40], ebx
call fcn.100014a1
mov byte [ebp - 4], 8
lea eax, [ebp - 0x98]
push ecx
mov dword [ebp - 0x3c], 0x96960f57
lea edx, [ebp - 0x7c]
mov dword [ebp - 0x20], 0xade
push eax
call fcn.10017226
pop ecx
pop ecx
mov dword [ebp - 0x3c], ebx
jmp 0x10015e3a
push ecx
lea eax, [ebp - 0x3c]
mov edx, 0x2425
push eax
lea eax, [ebp - 0x7c]
push eax
push 1
push ecx
push 0x217e
push 0x1241
mov ecx, 0x409d
call fcn.10016c0a
add esp, 0x1c
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 1
jl 0x10015e0f
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 7
call fcn.100014fe
push 0xd
pop eax
push 2
mov dword [ebp - 0x50], 0x2d039101
mov byte [ebp - 0x4c], bl
mov word [ebp - 0x4b], 0x229
mov byte [ebp - 0x49], 3
mov word [ebp - 0x66], ax
pop esi
movzx eax, byte [ebp + esi - 0x52]
movzx ecx, byte [ebp + esi - 0x4f]
movzx edx, word [ebp + eax*2 - 0x68]
mov eax, edx
and eax, ecx
add eax, eax
sub edx, eax
movzx eax, byte [ebp + esi - 0x50]
add edx, ecx
add esi, 2
mov word [ebp + eax*2 - 0x68], dx
cmp esi, 8
jb 0x10015e6a
xor eax, eax
mov dword [ebp - 0xa4], 7
mov word [ebp - 0x60], ax
lea ecx, [ebp - 0xb8]
mov word [ebp - 0xb8], ax
lea eax, [ebp - 0x68]
push eax
mov dword [ebp - 0xa8], ebx
call fcn.10019651
xor eax, eax
mov byte [ebp - 4], 9
lea edi, [ebp - 0x68]
mov edx, 0x78cf
stosd dword es:[edi], eax
push ecx
lea ecx, [ebp - 0xb8]
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x88]
push eax
push 0x4c2d
call fcn.10016276
mov ecx, dword [ebp + 0x24]
lea eax, [ebp - 0x88]
add esp, 0xc
push eax
call fcn.100192ae
push ebx
push 1
lea ecx, [ebp - 0xb8]
call fcn.100017a2
lea ecx, [ebp - 0x88]
call fcn.10019864
jmp 0x10015fa0
mov eax, dword [eax]
xor ecx, ecx
mov esi, dword [ebp + 0x30]
mov edx, dword [ebp + 0x34]
mov eax, dword [esi]
mov eax, dword [esi]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov eax, dword [edx]
mov eax, dword [edx]
cmp eax, 0xdb45
sete cl
xor ebx, ebx
sub ecx, 0x68ac
cmp ecx, 0xffff
jne 0x10015f53
cmp dword [edx], ebx
je 0x10015f53
xor ecx, ecx
inc ecx
jmp 0x10015f55
mov ecx, ebx
xor eax, eax
cmp ecx, 4
setne al
xor ecx, ecx
mov dword [edx], eax
mov eax, dword [edx]
cmp eax, 0x515b8451
mov edx, dword [ebp + 0x18]
setg cl
xor eax, eax
cmp ecx, 1
setg al
cmp eax, dword [esi]
jge 0x10015f7c
mov eax, dword [edx]
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx]
mov eax, dword [edi]
mov eax, dword [ecx]
mov eax, dword [edi]
mov eax, dword [ebp + 0x38]
mov ecx, dword [ebp + 0x14]
mov dword [eax], ebx
mov eax, dword [edx]
mov eax, dword [edx]
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
add eax, dword [ecx]
mov dword [edi], eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret