Function at 0x100187e9
Capabilities:
Create pipe
Create thread
Query service status
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10080cc3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c0
push ebx
push esi
push edi
mov dword [esp + 0x5c], edx
xor ebx, ebx
push 3
mov dword [esp + 0x1c], 1
mov edi, ecx
mov dword [esp + 0x1c], ebx
pop esi
jmp 0x10018839
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xd0], 5
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x10018826
mov dword [esp + 0x18], 2
cmp dword [esp + 0x18], ebx
jl 0x100188c2
mov dword [esp + 0x20], 0xfffffff9
mov dword [esp + 0x38], 0xfffffff7
mov edx, dword [esp + 0x20]
sub edx, 0xfffffffd
neg edx
sbb edx, edx
add edx, 0xd3257b3b
sub edx, dword [esp + 0xd0]
mov eax, dword [esp + 0xd8]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
sub ecx, 0xc842
cmp ecx, 1
mov ecx, dword [esp + 0x18]
sbb eax, eax
xor edx, edx
inc eax
imul ecx, eax
mov eax, dword [esp + 0x20]
cmp ecx, eax
mov eax, dword [esp + 0x18]
setl dl
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0xd0]
cmp eax, edx
setle cl
mov dword [esp + 0x38], ecx
dec dword [esp + 0x18]
jns 0x1001884d
push dword [esp + 0x54]
lea eax, [esp + 0x190]
mov dword [esp + 0x78], ebx
push eax
lea eax, [esp + 0x184]
mov dword [esp + 0x80], ebx
push eax
xorps xmm0, xmm0
mov dword [esp + 0x88], ebx
push ebx
lea ecx, [esp + 0x84]
movdqu xmmword [esp + 0x18c], xmm0
call fcn.10017e5b
mov dword [esp + 0x1d4], ebx
mov eax, 0xc7516a20
mov dword [esp + 0x14], 0xd8f8f576
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x20], 9
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x6c], ebx
je 0x10018a6f
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x20], 1
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], ebx
jl 0x10018a4b
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], 0x6105f61c
cmp dword [esp + 0x14], ebx
je 0x100189c4
mov eax, dword [esp + 0x38]
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [esp + 0x14]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x14]
setge dl
sub edx, dword [esp + eax*4 + 0x60]
neg edx
sbb edx, edx
inc edx
cmp edx, 0x1e18
je 0x100189c4
xor esi, esi
inc esi
jmp 0x100189c6
mov esi, ebx
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov edx, dword [esp + eax*4 + 0x60]
mov eax, dword [esp + 0x14]
cmp esi, eax
setl cl
xor eax, eax
cmp edx, ecx
setle al
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x60], ecx
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x6c], eax
mov eax, dword [esp + 0x14]
jg 0x10018a38
mov eax, dword [esp + eax*4 + 0x60]
mov dword [esp + 0x20], eax
jmp 0x10018a3e
cmp dword [esp + eax*4 + 0x60], ebx
jne 0x10018a48
dec dword [esp + 0x14]
jns 0x10018981
push 3
pop esi
mov eax, dword [esp + 0x74]
mov dword [eax], 0x1b
mov dword [esp + 0x18], 0x1713b910
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x18], 0x12
jmp 0x10018abe
mov dword [esp + 0x14], ebx
jmp 0x10018a85
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x60], 0x99d012cd
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x10018a75
jmp 0x10018a4b
mov dword [esp + 0x20], 0x38462751
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10018ab2
push 0x18b0
push 0x15c9
push ebx
call dword [sym.imp.GDI32.dll_PtInRegion]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x1d
jne 0x10018a8e
push 0x1d6b
push ebx
call fcn.1001be59
mov eax, dword [esp + 0x7c]
pop ecx
pop ecx
inc dword [eax]
cmp dword [eax], 0x1d
jle 0x10018a55
or dword [esp + 0x1d4], 0xffffffff
lea ecx, [esp + 0x74]
call fcn.10017033
xor eax, eax
mov dword [esp + 0x30], 0xeef20fe6
inc eax
mov dword [esp + 0x30], 0x1dbeccce
mov dword [esp + 0x30], eax
lea ecx, [esp + 0x138]
mov dword [esp + 0x30], 0x3f9e923e
push eax
call fcn.10016765
mov dword [esp + 0x20], 0xfffffff7
mov dword [esp + 0x14], ebx
jmp 0x10018b3f
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1b0], 1
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10018b2c
mov dword [esp + 0x14], ebx
jmp 0x10018b61
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x138]
mov dword [eax + ecx*4], 0x9b7928f
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x10018b4b
mov dword [esp + 0x14], ebx
jmp 0x10018b7d
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1bc], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10018b6e
inc dword [esp + 0x20]
lea ecx, [esp + 0x138]
call fcn.10017033
cmp dword [edi + 0x10], ebx
jne 0x10018b9f
xor al, al
jmp 0x10019c18
push dword [esp + 0x54]
lea eax, [esp + 0x170]
mov dword [esp + 0x84], ebx
push eax
lea eax, [esp + 0x164]
mov dword [esp + 0x8c], ebx
push eax
xorps xmm0, xmm0
mov dword [esp + 0x94], ebx
push ebx
lea ecx, [esp + 0x90]
movdqu xmmword [esp + 0x16c], xmm0
call fcn.10017e5b
mov eax, dword [esp + 0x80]
mov dword [eax], 0x1b
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10018c0d
push ebx
push ebx
push 0x3da
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x80]
inc dword [eax]
cmp dword [eax], 0x1d
jle 0x10018bee
lea ecx, [esp + 0x80]
call fcn.10017033
mov eax, dword [esp + 0x5c]
mov dword [eax], ebx
mov dword [esp + 0x1c], 0x33c6
mov dword [esp + 0x20], 9
mov dword [esp + 0x38], 0xfffffffa
mov dword [esp + 0x20], 0xd635290c
mov dword [esp + 0x14], ebx
jmp 0x10018c66
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1a4], 0xafd061a6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10018c53
mov dword [esp + 0x14], ebx
jmp 0x10018c85
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x198], 1
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10018c72
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
cmp dword [esp + 0x20], 0xd5a519d8
mov eax, dword [esp + 0x38]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
push 1
setle dl
sub edx, dword [esp + 0x20]
neg edx
sbb edx, edx
inc edx
sub edx, dword [esp + 0x20]
neg edx
sbb edx, edx
lea ecx, [edx + 1]
xor edx, edx
sub ecx, dword [esp + 0x20]
add ecx, 0xffff000a
mov dword [esp + 0x1b0], ecx
mov eax, dword [esp + 0x20]
cmp ecx, eax
setle dl
sub edx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov edx, dword [esp + 0x20]
setl cl
sub edx, ecx
xor ecx, ecx
imul edx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp edx, eax
mov eax, dword [esp + 0x1a4]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0xbc]
setle dl
add eax, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x24], 0x5223
call fcn.10016765
mov dword [esp + 0x18], ebx
jmp 0x10018d56
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xb8]
mov dword [eax + ecx*4], 0x48b1647c
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jl 0x10018d40
mov esi, dword [esp + 0xb8]
mov edx, dword [esi]
mov eax, edx
imul eax, edx
test eax, eax
jne 0x10018d85
xor ecx, ecx
lea eax, [edx - 0x2a07265e]
cmp eax, edx
setl cl
add ecx, 5
jne 0x10018d85
mov eax, ebx
jmp 0x10018d88
xor eax, eax
inc eax
mov edx, dword [esi]
mov dword [esp + 0x20], 0x131d
mov ecx, dword [esp + 0x20]
imul ecx, eax
push 7
pop esi
sub ecx, edx
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, esi
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
setl al
xor ecx, ecx
cmp eax, edx
mov eax, 0xbb7a1405
setle cl
sub ecx, edx
neg ecx
sbb ecx, ecx
inc ecx
cmp eax, ecx
sbb eax, eax
inc eax
cmp eax, 0x32bb
jl 0x10018dd9
test edx, edx
je 0x10018dd9
xor eax, eax
inc eax
jmp 0x10018ddb
mov eax, ebx
mov ecx, 0x3b16aac8
sub ecx, eax
mov eax, dword [esp + 0xb8]
mov dword [eax], ecx
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10018e03
push ebx
push ebx
push 0x32e
call dword [sym.imp.KERNEL32.dll_GetModuleHandleExW]
lea ecx, [esp + 0xb8]
call fcn.10017033
mov dword [esp + 0x18], 6
lea ecx, [esp + 0xc4]
mov dword [esp + 0x34], 0x45ee28fd
push 1
call fcn.10016765
xor eax, eax
lea ecx, [esp + 0x8c]
inc eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], 0xe661fbc9
mov dword [esp + 0x30], 0x7c2076a
mov dword [esp + 0x14], 0xba167c28
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], 3
push eax
call fcn.10016765
mov dword [esp + 0x20], esi
xor edx, edx
mov dword [esp + 0x24], 0x30eca6d7
inc edx
mov dword [esp + 0x1c], ebx
jmp 0x10018e91
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x4c], 0xd453
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jl 0x10018e81
mov dword [esp + 0x1c], ebx
jmp 0x10018eb3
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x8c]
mov dword [eax + ecx*4], 0xbc1c234a
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jl 0x10018e9d
mov ecx, dword [esp + 0x4c]
xor edx, edx
mov eax, dword [esp + 0x4c]
cmp ecx, eax
setne dl
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], eax
cmp dword [esp + 0x38], ebx
jne 0x10018ee6
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x8c]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
lea eax, [eax + ecx*8]
test eax, eax
jne 0x10018f12
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
xor edx, edx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
inc dword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
setle dl
xor eax, eax
cmp edx, 0xd029
setg al
xor ecx, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x30], eax
setle cl
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x28]
neg eax
mov dword [esp + 0x2c], eax
je 0x10018fae
cmp dword [esp + 0x4c], ebx
je 0x10018fae
mov dword [esp + 0x20], ebx
mov dword [esp + 0x30], 8
mov dword [esp + 0x14], ebx
jmp 0x10018fa2
cmp dword [esp + 0x20], ebx
jne 0x10019042
mov eax, dword [esp + 0x30]
sub eax, 3
mov dword [esp + 0x20], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xd
je 0x10018f89
jmp 0x10019042
mov dword [esp + 0x28], 0xc
jmp 0x10019037
mov dword [esp + 0x24], 0xffffffea
jmp 0x1001902c
mov dword [esp + 0x30], 0xffffffff
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10018ff4
push ebx
push 0x2615
push 0x1a20
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetCharABCWidthsW]
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], ebx
jl 0x10019028
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x8c]
mov eax, dword [eax + ecx*4]
mov dword [edx + esi*4], eax
mov dword [esp + 0x30], eax
dec dword [esp + 0x1c]
jns 0x10018ffe
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 0x35
jle 0x10018fc2
dec dword [esp + 0x28]
cmp dword [esp + 0x28], 0xffffffe8
jle 0x10018fb8
lea ecx, [esp + 0x8c]
call fcn.10017033
mov dword [esp + 0x24], ebx
jmp 0x10019066
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0xc4]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 1
jl 0x10019054
cmp dword [esp + 0x34], ebx
je 0x10019078
xor ecx, ecx
inc ecx
jmp 0x1001907a
mov ecx, ebx
xor eax, eax
cmp ecx, 0xd9ba
setle al
imul eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
sub ecx, 0x585b7f
neg ecx
sbb ecx, ecx
inc ecx
neg ecx
sub ecx, eax
mov eax, dword [esp + 0x18]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp eax, ecx
mov eax, dword [esp + 0x18]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xc4]
setge cl
cmp ecx, 0x9f4ffcf3
sbb ecx, ecx
inc ecx
mov dword [eax], ecx
mov dword [esp + 0x18], 1
mov dword [esp + 0x30], 5
mov dword [esp + 0x20], 0xfe57f6cc
mov dword [esp + 0x18], ebx
jmp 0x100190fb
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x18c], 0xa8eac8b1
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x100190e8
push 2
pop esi
mov dword [esp + 0x18], esi
cmp dword [esp + 0x18], ebx
jl 0x10019122
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x18c], ebx
jne 0x10019122
dec dword [esp + 0x18]
jns 0x1001910f
dec dword [esp + 0x20]
mov dword [esp + 0x18], 0xffffffe5
jmp 0x10019857
mov dword [esp + 0x28], 0x61928c17
mov dword [esp + 0x20], 0xe229edca
mov dword [esp + 0x34], 0xd816f93b
mov dword [esp + 0x38], 0x18bd8502
push 4
pop eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x38], 9
mov dword [esp + 0x28], 0x1d
jmp 0x10019313
mov dword [esp + 0x1c], 0x3b6f
xor edx, edx
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
cmp ecx, eax
setle dl
add edx, dword [esp + 0x1c]
imul edx, dword [esp + 0x1c]
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x34]
imul eax, dword [esp + 0x28]
sub eax, dword [esp + 0x1c]
sub eax, 9
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x20]
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
imul ecx, dword [esp + 0x20]
test ecx, ecx
je 0x100192ec
push dword [esp + 0x54]
lea eax, [esp + 0x180]
mov dword [esp + 0x3c], ebx
push eax
lea eax, [esp + 0x174]
mov dword [esp + 0xa0], ebx
push eax
xorps xmm0, xmm0
mov dword [esp + 0xa8], ebx
push ebx
lea ecx, [esp + 0xa8]
mov dword [esp + 0xb0], ebx
movdqu xmmword [esp + 0x17c], xmm0
call fcn.10017e5b
mov dword [esp + 0x34], ebx
jmp 0x1001925c
mov eax, dword [esp + 0x34]
mov dword [esp + eax*4 + 0x58], 0xffffffff
inc dword [esp + 0x34]
cmp dword [esp + 0x34], 1
jl 0x1001924c
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x58]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
imul eax, dword [esp + 0xa8]
dec dword [esp + 0xa8]
test eax, eax
jne 0x10019294
cmp dword [esp + 0x2c], ebx
jne 0x10019294
mov eax, ebx
jmp 0x10019297
xor eax, eax
inc eax
mov dword [esp + 0x38], eax
xor edx, edx
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
cmp ecx, eax
mov eax, dword [esp + 0x98]
setle dl
mov dword [eax + 4], edx
mov eax, dword [esp + 0x58]
imul eax, dword [esp + 0x1c]
sub eax, 7
mov dword [esp + 0x38], eax
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x100192de
push ebx
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [esp + 0x98]
call fcn.10017033
jmp 0x1001930f
mov dword [esp + 0x34], ebx
jmp 0x10019308
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10019304
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
dec dword [esp + 0x34]
cmp dword [esp + 0x34], 0xfffffffd
jne 0x100192f2
dec dword [esp + 0x28]
cmp dword [esp + 0x28], 0x12
jne 0x10019187
mov dword [esp + 0x34], ebx
cmp dword [esp + 0x34], ebx
jg 0x10019853
push esi
lea ecx, [esp + 0x154]
call fcn.10016765
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x30], 0x95364446
mov dword [esp + 0x24], ebx
jmp 0x10019365
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x150]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [esp + 0x24]
cmp dword [esp + 0x24], esi
jl 0x1001934f
mov dword [esp + 0x24], ebx
jmp 0x10019381
mov dword [esp + 0x20], 0xfffffffd
inc dword [esp + 0x20]
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 1
jle 0x10019371
lea ecx, [esp + 0x150]
call fcn.10017033
mov dword [esp + 0x48], 0xf4a8fe24
lea ecx, [esp + 0xe8]
mov dword [esp + 0x20], 7
push esi
call fcn.10016765
mov dword [esp + 0x14], ebx
jmp 0x100193ca
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x12c], 0x8100c430
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x100193b7
mov dword [esp + 0x14], ebx
jmp 0x100193e7
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x40], 0xa32f3f60
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100193d7
mov dword [esp + 0x14], ebx
jmp 0x10019409
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xe8]
mov dword [eax + ecx*4], 0x633933b8
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100193f3
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
sub ecx, eax
mov eax, dword [esp + 0x20]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x44]
setl dl
xor ecx, ecx
cmp eax, edx
setl cl
cmp ecx, 0x1355fff8
jg 0x10019440
mov eax, dword [esp + 0x44]
mov dword [esp + 0x130], ebx
xor esi, esi
mov eax, dword [esp + 0x44]
xor ecx, ecx
mov eax, dword [esp + 0x44]
inc esi
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
cmp eax, esi
setge cl
xor eax, eax
cmp ecx, 0x71dbcabe
setne al
xor edx, edx
cmp eax, 8
mov eax, dword [esp + 0x44]
setle dl
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, dword [esp + 0x40]
jge 0x10019499
mov edx, ebx
cmp dword [esp + 0x44], ebx
je 0x1001949b
mov edx, esi
mov eax, dword [esp + 0x44]
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, dword [esp + 0x20]
jg 0x100194ce
cmp dword [esp + 0x130], ebx
je 0x100194ce
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x100194c8
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
mov dword [esp + 0x44], ebx
jmp 0x100194ed
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x100194ed
push ebx
push 0x216f
push ebx
push ebx
push 0x1176
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, dword [esp + 0xe8]
lea ecx, [esp + 0xe8]
mov dword [eax + 4], 0xfffffffa
call fcn.10017033
mov dword [esp + 0x48], ebx
jmp 0x10019708
mov dword [esp + 0x14], 0xfffffffd
lea ecx, [esp + 0x110]
mov dword [esp + 0x1c], 0xf38c0887
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], 0x3ae5d5ec
mov dword [esp + 0x30], 0x55e97312
push 3
call fcn.10016765
mov dword [esp + 0x24], 0xa3396d56
push 3
mov dword [esp + 0x24], 0x2038
mov dword [esp + 0x2c], ebx
pop edx
jmp 0x1001956a
mov eax, dword [esp + 0x28]
mov dword [esp + eax*4 + 0x11c], ebx
inc dword [esp + 0x28]
cmp dword [esp + 0x28], edx
jl 0x1001955b
mov dword [esp + 0x28], ebx
jmp 0x10019588
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x110]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x28]
cmp dword [esp + 0x28], edx
jl 0x10019576
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jne 0x100195ad
cmp dword [esp + 0x1c], 0xfffffffe
jle 0x100195ad
cmp dword [esp + 0x14], ebx
jne 0x100195ad
mov eax, ebx
cmp dword [esp + 0x1c], ebx
je 0x100195af
mov eax, esi
neg eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x14], eax
je 0x100195ff
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x100195d1
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov dword [esp + 0x1c], ebx
jmp 0x100195f6
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x100195f2
push ebx
push 0x10b2
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jle 0x100195d7
jmp 0x1001964a
mov dword [esp + 0x14], ebx
jmp 0x10019619
mov dword [esp + 0x30], 0xaa53f0d3
mov dword [esp + 0x30], 0x2ba75a59
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffffb
jl 0x10019605
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1001964a
push ebx
push 0xdb2
push 0x14c3
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetViewportExtEx]
mov eax, dword [esp + 0x14]
dec dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x124]
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x124]
neg eax
sbb eax, eax
inc eax
cmp eax, dword [esp + 0x2c]
jne 0x10019687
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
neg ecx
sbb ecx, ecx
neg ecx
sub ecx, eax
je 0x100196be
mov dword [esp + 0x24], ebx
jmp 0x100196b5
cmp dword [esp + 0x1c], ebx
jne 0x100196dd
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 0xe
jne 0x100196ab
jmp 0x100196dd
mov dword [esp + 0x2c], 0xb447fd32
xor edx, edx
dec dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
setg dl
mov dword [esp + 0x30], edx
lea ecx, [esp + 0x110]
call fcn.10017033
push 0x7158
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0xcc]
push eax
push ebx
call fcn.1001bfd3
add esp, 0x10
inc dword [esp + 0x48]
cmp dword [esp + 0x48], esi
jl 0x10019510
push esi
lea ecx, [esp + 0xf8]
call fcn.10016765
mov dword [esp + 0x28], 0xffffffff
xor edx, edx
mov dword [esp + 0x24], 0x3009ce45
inc edx
mov dword [esp + 0x30], 0xfffffffb
mov dword [esp + 0x20], edx
mov dword [esp + 0x38], 0xbf8c3261
mov dword [esp + 0x28], ebx
jmp 0x10019762
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xf4]
mov dword [eax + ecx*4], 0x5568
inc dword [esp + 0x28]
cmp dword [esp + 0x28], edx
jl 0x1001974c
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x28], ebx
jl 0x100197d6
mov dword [esp + 0x1c], edx
mov dword [esp + 0x1c], ebx
jmp 0x100197c2
mov dword [esp + 0x24], ebx
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1001979c
push 0x1d99
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreatePipe]
xor edx, edx
inc edx
mov dword [esp + 0x24], ebx
jmp 0x100197b8
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0xf4]
mov dword [eax + ecx*4], 0xe858
inc dword [esp + 0x24]
cmp dword [esp + 0x24], edx
jl 0x100197a2
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], ebx
jle 0x1001977c
mov dword [esp + 0x24], 0x7bf48c44
dec dword [esp + 0x28]
jns 0x10019772
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x20], ebx
je 0x100197fc
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xf4]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], 0x3aa4807c
call fcn.10017033
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10019842
push ebx
push 0x1746
push 0x5303
call fcn.1001b767
add esp, 0xc
inc dword [esp + 0x34]
push 2
pop esi
cmp dword [esp + 0x34], ebx
jle 0x1001932c
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0xf
jle 0x10019133
or dword [esp + 0x1d4], 0xffffffff
lea ecx, [esp + 0xc4]
call fcn.10017033
cmp dword [edi + 0x14], 0x10
jb 0x10019880
mov esi, dword [edi]
jmp 0x10019882
mov esi, edi
cmp dword [edi + 0x14], 0x10
jb 0x1001988c
mov ecx, dword [edi]
jmp 0x1001988e
mov ecx, edi
mov eax, dword [edi + 0x10]
add eax, ecx
cmp esi, eax
je 0x10019b2d
push ebx
push 0x5226
call fcn.1001ba9d
mov al, byte [esi]
pop ecx
pop ecx
cmp al, 0x30
jl 0x100199f5
cmp al, 0x39
jg 0x100199f5
push 0xfffffffffffffff8
pop eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], 0xf27d2703
mov dword [esp + 0x30], 0x3bfa32a1
mov dword [esp + 0x30], 0x3531f145
mov dword [esp + 0xa4], 3
mov dword [esp + 0x34], eax
cmp dword [esp + 0x34], 0xfffffff2
jne 0x1001998c
xor ecx, ecx
inc ecx
mov dword [esp + 0x18], 0xb96ca2cb
mov dword [esp + 0x30], ecx
mov dword [esp + 0x30], 0x315362da
mov dword [esp + 0x30], ebx
mov dword [esp + 0x18], ebx
jmp 0x10019927
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x128], 2
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jl 0x10019914
mov dword [esp + 0x18], 0xffffffe3
cmp dword [esp + 0x18], 0x1b
jg 0x1001997d
push 0x4971
push ebx
lea eax, [esp + 0xac]
mov dword [esp + 0x38], 0x74bf90ed
mov dword [esp + 0x38], ecx
push eax
mov dword [esp + 0x3c], 0x1a35ca42
mov dword [esp + 0x3c], ecx
push 0x4c3b
call fcn.1001b6f1
add esp, 0x10
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x1b
push 1
pop ecx
jle 0x1001993c
dec dword [esp + 0x34]
cmp dword [esp + 0x34], 0xfffffff2
je 0x100198f6
mov dword [esp + 0x18], ebx
jmp 0x100199d7
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x100199d3
push 0xeea
push 0x2a49
push 0x7437
push 0x29c5
push 0x641c
push 0x7188
push 0x1679
push ebx
push 0x7e3
push 0x25ed
call fcn.10019d02
add esp, 0x28
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xfffffffd
jl 0x10019992
mov edx, dword [esp + 0x5c]
movsx eax, byte [esi]
imul ecx, dword [edx], 0xa
add ecx, 0xffffffd0
add eax, ecx
inc esi
mov dword [edx], eax
jmp 0x10019882
xor edi, edi
inc edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], 0xefa97f51
mov dword [esp + 0x70], 3
mov dword [esp + 0x3c], 0xaa23
mov dword [esp + 0x18], ebx
jmp 0x10019a2d
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x100], 0x3ac1
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x10019a1a
push ebx
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x5c]
push eax
push 0x5c7b
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x84]
push eax
call fcn.1001bc93
add esp, 0x18
mov dword [esp + 0x3c], ebx
jmp 0x10019b10
mov dword [esp + 0x2c], 0xfffffffa
mov dword [esp + 0x18], ebx
jmp 0x10019a83
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x144], 0x8ef544bd
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x10019a70
inc dword [esp + 0x104]
mov edx, dword [esp + 0x104]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14c]
neg ecx
mov esi, dword [esp + 0x70]
sbb ecx, ecx
inc ecx
add ecx, eax
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x3c]
add esi, ecx
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x2c]
setg cl
xor edx, edx
cmp ecx, esi
setle dl
imul eax, edx
test eax, eax
je 0x10019ad9
mov ecx, edi
cmp dword [esp + 0x50], ebx
jne 0x10019adb
mov ecx, ebx
mov eax, dword [esp + 0x2c]
add eax, 0xd47e
add eax, ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
sub ecx, eax
xor eax, eax
cmp ecx, 0xffffffff
setg al
mov dword [esp + 0x148], eax
cmp dword [esp + 0x104], ebx
jne 0x10019b1b
inc dword [esp + 0x3c]
cmp dword [esp + 0x3c], 0x1b
je 0x10019a62
lea eax, [esp + 0x5c]
push eax
push ebx
call fcn.10019cc6
pop ecx
pop ecx
jmp 0x10018b98
mov dword [esp + 0x38], 0xad72d767
lea ecx, [esp + 0xdc]
mov dword [esp + 0x30], 0xd67a4bed
mov dword [esp + 0x20], 0xf023498e
mov dword [esp + 0x2c], 0x7bff44ca
push 4
call fcn.10016765
mov dword [esp + 0x20], 0xfff7
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x2c], 0x257a10dd
mov dword [esp + 0x2c], 0x912e7550
mov dword [esp + 0x18], ebx
jmp 0x10019b97
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xdc]
mov dword [eax + ecx*4], 0xd11023dc
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x10019b81
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xdc]
mov dword [eax + 0xc], ecx
inc dword [esp + 0x20]
test ecx, ecx
jne 0x10019bb7
xor ebx, ebx
inc ebx
mov eax, dword [esp + 0x30]
xor edx, edx
mov ecx, dword [esp + 0x38]
sub ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], ebx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
cmp ecx, eax
setg dl
sub edx, dword [esp + 0x2c]
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 0xb09f
setl al
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
add ecx, 0xffff
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0xdc]
call fcn.10017033
mov al, 1
mov ecx, dword [esp + 0x1cc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret