Function at 0x10016040
Capabilities:
Connect pipe
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1017bd73
mov eax, dword fs:[0]
push eax
mov eax, 0x1d24
call fcn.100a7a90
mov eax, dword [0x101e3070]
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 ebx, ecx
sub esp, 0x18
mov dword [ebp - 4], 0
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x10016098
mov eax, dword [ecx]
jmp 0x1001609a
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp + 8]
push 0
push eax
call fcn.100057d0
call fcn.10014cb0
add esp, 0x18
mov dword [ebx + 0x984], eax
cmp eax, 0xffffffff
jne 0x100160da
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
jb 0x100160d2
inc eax
lea ecx, [ebp + 8]
push eax
push dword [ebp + 8]
call fcn.10005c20
or eax, 0xffffffff
jmp 0x100169dd
lea ecx, [ebx + 0x988]
lea eax, [ebp + 8]
cmp ecx, eax
je 0x100160f1
push 0xffffffffffffffff
push 0
push eax
call fcn.100057d0
xor edi, edi
push edi
push dword [ebx + 0x984]
call dword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
test eax, eax
jne 0x10016111
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x217
jne 0x100160f1
push 0xfd0
lea eax, [ebp - 0x1370]
push 0
push eax
call fcn.10154a20
mov ecx, dword [ebx + 0x984]
lea edx, [ebp - 0x1370]
push 0xfd0
call fcn.10015350
mov esi, eax
add esp, 0x10
test esi, esi
js 0x100169a2
cmp esi, 4
jb 0x100169a2
mov eax, dword [ebp - 0x1370]
mov dword [ebp - 0x1d30], eax
cmp eax, 0x4dac
jne 0x100161c3
push 0x800
lea eax, [ebp - 0x1b74]
push 0
push eax
call fcn.10154a20
add esp, 0xc
lea eax, [ebp - 0x1b74]
push 0xfd0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea esi, [ebp - 0x1b74]
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x10016196
sub esi, ecx
lea eax, [ebp - 0x1b74]
sar esi, 1
add esi, esi
push esi
push eax
lea eax, [ebp - 0x1370]
push eax
call fcn.101544a0
add esp, 0xc
jmp 0x10016371
cmp eax, 0x4e91
jne 0x10016201
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x101cf3e8
lea eax, [ebp - 0x1370]
push 0xfd0
push eax
call fcn.100115c0
lea esi, [ebp - 0x1370]
add esp, 0x10
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x100161f3
sub esi, ecx
jmp 0x10016371
cmp eax, 0x103e7
jne 0x1001623e
push dword [ebx + 8]
lea eax, [ebp - 0x1370]
push 0x101cf3e8
push 0xfd0
push eax
call fcn.100115c0
lea esi, [ebp - 0x1370]
add esp, 0x10
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x10016230
sub esi, ecx
jmp 0x10016371
cmp eax, 0x9cb1
jne 0x10016295
mov eax, dword [ebx]
test eax, eax
je 0x10016254
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [ebx]
mov esi, dword [ebx + 4]
test eax, eax
je 0x10016264
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
push 0x101cf3e8
lea eax, [ebp - 0x1370]
push 0xfd0
push eax
call fcn.100115c0
lea esi, [ebp - 0x1370]
add esp, 0x10
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10016287
sub esi, ecx
jmp 0x10016371
cmp eax, 0x4fc9
jne 0x100162d5
push dword [ebx + 0x14]
lea eax, [ebp - 0x1370]
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push str._d._d._d
push 0xfd0
push eax
call fcn.100115c0
lea esi, [ebp - 0x1370]
add esp, 0x18
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x100162c7
sub esi, ecx
jmp 0x10016371
cmp eax, 0xf9a7
jne 0x10016312
push dword [ebx + 0x20]
lea eax, [ebp - 0x1370]
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
push str._d._d._d
push 0xfd0
push eax
call fcn.100115c0
lea esi, [ebp - 0x1370]
add esp, 0x18
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10016307
sub esi, ecx
jmp 0x10016371
cmp eax, 0x4dbe
je 0x10016371
cmp eax, 0x4c9c
je 0x10016371
cmp eax, 0x85b9
jne 0x10016584
cmp dword [ebx + 0x8cc], 8
lea eax, [ebx + 0x8b8]
jb 0x1001633c
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x1370]
push 0x101d41a8
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea esi, [ebp - 0x1370]
add esp, 0xc
lea ecx, [esi + 2]
nop dword [eax + eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x10016360
sub esi, ecx
sar esi, 1
add esi, esi
mov ecx, dword [ebx + 0x984]
lea edx, [ebp - 0x1370]
push esi
call fcn.10015270
mov esi, dword [ebx + 0x984]
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push esi
call dword [sym.imp.KERNEL32.dll_DisconnectNamedPipe]
mov eax, dword [ebp - 0x1d30]
cmp eax, 0x4c9c
je 0x100169c3
cmp eax, 0x4dbe
je 0x100169bb
test edi, edi
je 0x100160f1
cmp dword [ebx + 0x9b0], 0
je 0x100163ea
push dword [ebx + 0x8b4]
lea eax, [ebx + 0xb4]
mov ecx, ebx
push eax
lea eax, [ebx + 0x84]
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [ebx + 0x24]
push eax
call fcn.10015d20
push str.09F774B22DBC7417259398F6D33A4582
lea ecx, [ebp + 8]
call fcn.10010930
test eax, eax
jne 0x100160f1
xor esi, esi
push 0x100
lea eax, [ebp - 0x1a0]
push 0
push eax
call fcn.10154a20
push 0x100
lea eax, [ebp - 0x3a0]
push 0
push eax
call fcn.10154a20
push 0x100
lea eax, [ebp - 0x2a0]
push 0
push eax
call fcn.10154a20
push 0x100
lea eax, [ebp - 0x2a0]
mov edx, 0x20
push eax
push 0x57d20
push str.dbe113959660426ee70c233aedd166c8
push str.44e061a68ee8a76229d51517437988e92b79d45056204038beda458f5e2a827a
mov ecx, str.09F774B22DBC7417259398F6D33A4582
call fcn.10011770
add esp, 0x38
test eax, eax
js 0x10016572
push esi
lea eax, [ebp - 0x2a0]
push eax
lea eax, [ebp - 0x1a0]
push str._s__d
push eax
call fcn.100011a0
lea edx, [ebp - 0x1a0]
add esp, 0x10
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x10016494
push 0x100
lea eax, [ebp - 0x3a0]
sub edx, ecx
push eax
push 0x57d20
push str.dbe113959660426ee70c233aedd166c8
push str.44e061a68ee8a76229d51517437988e92b79d45056204038beda458f5e2a827a
lea ecx, [ebp - 0x1a0]
call fcn.10011920
add esp, 0x14
test eax, eax
js 0x10016572
push 0x9b8
lea eax, [ebp - 0x1d2c]
push 0
push eax
call fcn.10154a20
add esp, 0xc
lea ecx, [ebp - 0x1d2c]
call fcn.10015510
mov byte [ebp - 4], 1
lea eax, [ebx + 0xb4]
push dword [ebx + 0x8b4]
lea ecx, [ebp - 0x1d2c]
push eax
lea eax, [ebx + 0x84]
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [ebx + 0x24]
push eax
call fcn.10015ca0
sub esp, 0x18
lea eax, [ebp - 0x3a0]
mov ecx, esp
push eax
call fcn.10005260
lea ecx, [ebp - 0x1d2c]
call fcn.100014a0
push dword [ebp - 0x1478]
lea eax, [ebp - 0x1c78]
push eax
lea eax, [ebp - 0x1ca8]
push eax
lea eax, [ebp - 0x1cd8]
push eax
lea eax, [ebp - 0x1d08]
push eax
lea ecx, [ebp - 0x1d2c]
call fcn.10015d20
lea ecx, [ebp - 0x1d2c]
mov byte [ebp - 4], 0
call fcn.10015680
inc esi
cmp esi, 0x1000
jl 0x10016401
jmp 0x100160f1
cmp eax, 0x8b61
jne 0x100165d0
cmp dword [ebx + 0x8e4], 8
lea eax, [ebx + 0x8d0]
jb 0x1001659c
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x1370]
push 0x101d41a8
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea esi, [ebp - 0x1370]
add esp, 0xc
lea ecx, [esi + 2]
nop dword [eax + eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x100165c0
jmp 0x1001636b
cmp eax, 0x12619
jne 0x10016617
cmp dword [ebx + 0x8fc], 8
lea eax, [ebx + 0x8e8]
jb 0x100165e8
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x1370]
push 0x101d41a8
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea esi, [ebp - 0x1370]
add esp, 0xc
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x10016607
jmp 0x1001636b
cmp eax, 0x1391a
jne 0x10016911
push 0x30
lea eax, [ebp - 0x70]
push 0
push eax
call fcn.10154a20
push 0x30
lea eax, [ebp - 0xa0]
push 0
push eax
call fcn.10154a20
push 0x30
lea eax, [ebp - 0x40]
push 0
push eax
call fcn.10154a20
push 0x800
lea eax, [ebp - 0x1b74]
push 0
push eax
call fcn.10154a20
lea eax, [ebp - 0x1374]
mov dword [ebp - 0x1374], edi
push eax
lea eax, [ebp - 0x1b74]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x136c]
push str._s_t_s_t_s_t_s_t_d
push eax
call fcn.100011f0
add esp, 0x4c
cmp eax, 5
jne 0x100168cf
mov eax, dword [ebx]
test eax, eax
je 0x100166ae
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea edi, [ebx + 0x24]
lea ecx, [ebp - 0x70]
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100166d6
test dl, dl
je 0x100166d2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100166d6
add eax, 2
add ecx, 2
test dl, dl
jne 0x100166b6
xor eax, eax
jmp 0x100166db
sbb eax, eax
or eax, 1
test eax, eax
je 0x10016724
mov ecx, 0x101cf2a2
lea eax, [ebp - 0x70]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10016707
test dl, dl
je 0x10016703
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10016707
add eax, 2
add ecx, 2
test dl, dl
jne 0x100166e7
xor eax, eax
jmp 0x1001670c
sbb eax, eax
or eax, 1
test eax, eax
je 0x10016724
lea ecx, [ebp - 0x70]
mov eax, ecx
sub edi, eax
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edi - 1], al
test al, al
jne 0x10016717
lea edi, [ebx + 0x54]
lea ecx, [ebp - 0xa0]
mov eax, edi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10016750
test dl, dl
je 0x1001674c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10016750
add eax, 2
add ecx, 2
test dl, dl
jne 0x10016730
xor eax, eax
jmp 0x10016755
sbb eax, eax
or eax, 1
test eax, eax
je 0x100167a4
mov ecx, 0x101cf2a2
lea eax, [ebp - 0xa0]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10016784
test dl, dl
je 0x10016780
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10016784
add eax, 2
add ecx, 2
test dl, dl
jne 0x10016764
xor eax, eax
jmp 0x10016789
sbb eax, eax
or eax, 1
test eax, eax
je 0x100167a4
lea ecx, [ebp - 0xa0]
mov eax, ecx
sub edi, eax
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edi - 1], al
test al, al
jne 0x10016797
lea edi, [ebx + 0x84]
lea ecx, [ebp - 0x40]
mov eax, edi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100167d0
test dl, dl
je 0x100167cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100167d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100167b0
xor eax, eax
jmp 0x100167d5
sbb eax, eax
or eax, 1
test eax, eax
je 0x1001681e
mov ecx, 0x101cf2a2
lea eax, [ebp - 0x40]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10016801
test dl, dl
je 0x100167fd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10016801
add eax, 2
add ecx, 2
test dl, dl
jne 0x100167e1
xor eax, eax
jmp 0x10016806
sbb eax, eax
or eax, 1
test eax, eax
je 0x1001681e
lea ecx, [ebp - 0x40]
mov eax, ecx
sub edi, eax
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edi - 1], al
test al, al
jne 0x10016811
lea edi, [ebx + 0xb4]
lea ecx, [ebp - 0x1b74]
mov eax, edi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10016850
test dl, dl
je 0x1001684c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10016850
add eax, 2
add ecx, 2
test dl, dl
jne 0x10016830
xor eax, eax
jmp 0x10016855
sbb eax, eax
or eax, 1
test eax, eax
je 0x100168a4
mov ecx, 0x101cf2a2
lea eax, [ebp - 0x1b74]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10016884
test dl, dl
je 0x10016880
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10016884
add eax, 2
add ecx, 2
test dl, dl
jne 0x10016864
xor eax, eax
jmp 0x10016889
sbb eax, eax
or eax, 1
test eax, eax
je 0x100168a4
lea ecx, [ebp - 0x1b74]
mov eax, ecx
sub edi, eax
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edi - 1], al
test al, al
jne 0x10016897
mov eax, dword [ebp - 0x1374]
cmp eax, dword [ebx + 0x8b4]
je 0x100168b8
mov dword [ebx + 0x8b4], eax
mov eax, dword [ebx]
test eax, eax
je 0x10016907
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov edi, 1
jmp 0x10016371
lea eax, [ebp - 0x1374]
push eax
lea eax, [ebp - 0x136c]
push str._t_t_t_t_d
push eax
call fcn.100011f0
add esp, 0xc
cmp eax, 1
jne 0x100169a2
mov eax, dword [ebp - 0x1374]
cmp eax, dword [ebx + 0x8b4]
je 0x10016907
mov dword [ebx + 0x8b4], eax
mov edi, 1
jmp 0x10016371
cmp eax, 0x1779f
jne 0x100169a2
push 0x30
lea eax, [ebp - 0x40]
push 0
push eax
call fcn.10154a20
lea eax, [ebp - 0x1374]
mov dword [ebp - 0x1374], edi
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x136c]
push str._s_t_d
push eax
call fcn.100011f0
add esp, 0x1c
cmp eax, 2
jne 0x100169a2
mov eax, dword [ebx]
test eax, eax
je 0x10016962
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea ecx, [ebp - 0x40]
mov eax, ebx
mov edx, ecx
sub eax, edx
lea edx, [eax + 0x900]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x10016971
mov ax, word [ebp - 0x1374]
mov word [ebx + 0x980], ax
mov eax, dword [ebx]
test eax, eax
je 0x10016371
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x10016371
mov esi, dword [ebx + 0x984]
push esi
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push esi
call dword [sym.imp.KERNEL32.dll_DisconnectNamedPipe]
jmp 0x100160f1
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
jb 0x100169d8
inc eax
lea ecx, [ebp + 8]
push eax
push dword [ebp + 8]
call fcn.10005c20
mov eax, 0xb
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.100a66bf
mov esp, ebp
pop ebp
ret 0x18