Function at 0x10014932
Capabilities:
Modify service
Query service status
Start service

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x5c
mov ecx, 0x8e02a988
xor esi, esi
mov edi, 0x2c84d6a8
cmp ecx, 0x6a6d683
jg 0x10014a05
cmp ecx, 0xd6d3edf3
jle 0x10014ab6
cmp ecx, 0xea07da32
jle 0x10014bc8
cmp ecx, 0xf76f382e
jle 0x10014d3b
cmp ecx, 0x327ca7d
jle 0x1001501e
cmp ecx, 0x5f40aa8
jg 0x100155ab
cmp ecx, 0x327ca7e
je 0x10015625
cmp ecx, 0x5dbf4b7
jne 0x10014947
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push dword [ebp - 0x3c]
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [ebp - 0x18]
cmp dword [eax], 0
setne byte [ebp - 0x1a]
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x10098e28], 0xa
setge cl
xor dl, cl
or al, cl
mov ecx, edx
xor cl, al
not cl
test cl, 1
mov ebx, 0x45f2547c
mov ecx, 0xcd38e7a7
cmovne ebx, ecx
test al, 1
mov ecx, 0x45f2547c
jmp 0x10014aa9
cmp ecx, 0x3b31419a
jle 0x10014b61
cmp ecx, 0x62eab0a4
jle 0x10014c52
cmp ecx, 0x6b9b56c8
jle 0x10014dc6
cmp ecx, 0x78d9a796
jle 0x1001505c
cmp ecx, 0x7eb06b10
jg 0x100155d4
cmp ecx, 0x78d9a797
je 0x10015680
cmp ecx, 0x7bf1d3d9
jne 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0x5869eb84
and eax, 0xa796147b
or eax, edx
xor eax, 0x5869eb85
or eax, ecx
xor eax, 0xffffffff
setne al
sete dl
cmp dword [0x10098e28], 0xa
setge cl
xor dl, cl
or al, cl
mov ecx, edx
xor cl, al
mov ebx, 0xd0fc85e9
mov ecx, 0x98fb331
cmovne ebx, ecx
test al, al
cmovne ecx, ebx
test dl, dl
cmovne ecx, ebx
jmp 0x10014947
cmp ecx, 0xafbe3acc
jg 0x10014c98
cmp ecx, 0x9e9ab81e
jg 0x10014e00
cmp ecx, 0x91e70bd9
jg 0x1001508a
cmp ecx, 0x8e02a987
jle 0x100155fe
cmp ecx, 0x8e02a988
je 0x1001568a
cmp ecx, 0x91dc5a2b
jne 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xa8727d93
and eax, 0x578d826c
or eax, edx
xor eax, 0xa8727d92
or eax, ecx
xor eax, 0xffffffff
sete al
setne cl
cmp dword [0x10098e28], 0xa
setl dl
setge ah
and al, ah
or ah, cl
and dl, cl
or dl, al
mov al, dl
xor al, ah
test dl, dl
mov ecx, 0xcd38e7a7
mov edx, 0x5dbf4b7
cmovne ecx, edx
test ah, ah
mov ebx, 0xcd38e7a7
jmp 0x10015678
cmp ecx, 0x1fac2539
jg 0x10014cf5
cmp ecx, 0x14b0692a
jg 0x10014e80
cmp ecx, 0x98fb330
jg 0x1001510d
cmp ecx, 0x6a6d684
je 0x100156a0
cmp ecx, 0x71d6def
je 0x100156fb
cmp ecx, 0x80a6df2
jne 0x10014947
mov eax, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x10]
push esi
push esi
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
mov ecx, 0xc4a925b9
jmp 0x10014947
cmp ecx, 0xe00272af
jg 0x10014f0c
cmp ecx, 0xd8e12f39
jg 0x10015150
cmp ecx, 0xd6d3edf4
je 0x10015740
cmp ecx, 0xd84cbb83
je 0x1001574d
cmp ecx, 0xd8a0c93d
jne 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
and eax, 1
sete cl
cmp dword [0x10098e28], 0xa
setl dl
setge ch
and cl, ch
and dl, al
or dl, cl
or ch, al
mov al, ch
xor al, dl
test ch, ch
mov ecx, 0x1fac253a
mov ebx, 0x16239f97
cmovne ecx, ebx
test dl, dl
cmove ecx, ebx
test al, al
mov eax, 0x1fac253a
cmove ecx, eax
jmp 0x10014947
cmp ecx, 0x5bef15ec
jg 0x10014f4e
cmp ecx, 0x45f2547b
jg 0x100151dc
cmp ecx, 0x3b31419b
je 0x100157bf
cmp ecx, 0x3b360639
je 0x100157c9
cmp ecx, 0x3bb5e0e1
jne 0x10014947
mov ecx, 0x99e0a82e
jmp 0x10014947
cmp ecx, 0xc4a925b8
jg 0x10014f88
cmp ecx, 0xba7f31f4
jg 0x10015216
cmp ecx, 0xafbe3acd
je 0x100157d3
cmp ecx, 0xb02c95b8
je 0x10015837
cmp ecx, 0xb4f9400a
jne 0x10014947
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x28]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
mov dword [ebp - 0x58], eax
mov ecx, 0x6b9b56c9
jmp 0x10014947
cmp ecx, 0x2cc14456
jg 0x10014fdc
cmp ecx, 0x27bf44d6
jg 0x10015244
cmp ecx, 0x1fac253a
je 0x10015841
cmp ecx, 0x24ccfbf5
je 0x100158af
cmp ecx, 0x2554cc4e
jne 0x10014947
mov ecx, 0x698cd1fb
jmp 0x10014947
cmp ecx, 0xf151cfb2
jg 0x100152c4
cmp ecx, 0xea07da33
je 0x10015925
cmp ecx, 0xeb436d32
je 0x1001596d
cmp ecx, 0xf057343d
jne 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xfffffffe
and eax, 1
or eax, edx
not eax
or eax, ecx
xor eax, 0xffffffff
sete al
setne cl
cmp dword [0x10098e28], 0xa
setl dl
setge ah
and al, ah
or ah, cl
and dl, cl
or dl, al
mov al, ah
xor al, dl
mov ebx, 0x7bf1d3d9
mov ecx, 0x750e4303
cmovne ebx, ecx
test dl, dl
mov ecx, ebx
mov edx, 0x7bf1d3d9
jmp 0x10015e7e
cmp ecx, 0x698cd1fa
jg 0x100152f8
cmp ecx, 0x62eab0a5
je 0x10015977
cmp ecx, 0x634ed83b
je 0x1001523a
cmp ecx, 0x64377f23
jne 0x10014947
mov ecx, 0xd8e12f3a
jmp 0x10014947
cmp ecx, 0xa85da8de
jg 0x1001537e
cmp ecx, 0x9e9ab81f
je 0x100159d5
cmp ecx, 0xa12a606c
je 0x10015a2d
cmp ecx, 0xa6cbd9c0
jne 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xfffffffe
and eax, 1
or eax, edx
xor ecx, eax
test ecx, eax
setne al
cmp dword [0x10098e28], 0xa
setge cl
mov edx, ecx
or dl, al
xor cl, al
mov eax, ecx
xor al, dl
test cl, cl
mov ecx, 0x3b31419b
mov ebx, 0x1620ef72
cmovne ecx, ebx
test dl, dl
mov edx, 0x3b31419b
jmp 0x10016235
cmp ecx, 0x16239f96
jg 0x1001540b
cmp ecx, 0x14b0692b
je 0x10015a37
cmp ecx, 0x14c9c085
je 0x10015a9f
cmp ecx, 0x1620ef72
jne 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xfffffffe
and eax, 1
or eax, edx
xor ecx, eax
test ecx, eax
sete al
setne cl
cmp dword [0x10098e28], 0xa
setge dl
setl ah
mov dh, ah
xor dh, cl
and dh, ah
and dl, al
and ah, cl
or ah, dl
mov al, ah
xor al, dh
test ah, ah
mov ecx, 0x3b31419b
mov ebx, 0xce2eeabd
cmovne ecx, ebx
test dh, dh
mov edx, 0x3b31419b
jmp 0x10015f65
cmp ecx, 0xe7b69384
jg 0x10015441
cmp ecx, 0xe00272b0
je 0x10015aec
cmp ecx, 0xe49501c1
je 0x10015af6
cmp ecx, 0xe7647fec
jne 0x10014947
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
mov ecx, 0x5ed2001c
jmp 0x10014947
cmp ecx, 0x5ed2001b
jg 0x100154d2
cmp ecx, 0x5bef15ed
je 0x10015b0c
cmp ecx, 0x5cd4d9eb
je 0x10015b6e
cmp ecx, 0x5ebaefe5
jne 0x10014947
mov ecx, 0x6a17a462
jmp 0x10014947
cmp ecx, 0xce2eeabc
jg 0x10015500
cmp ecx, 0xc4a925b9
je 0x10015be0
cmp ecx, 0xc8eedbbc
je 0x10015c53
cmp ecx, 0xcd38e7a7
jne 0x10014947
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push dword [ebp - 0x3c]
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [ebp - 0x18]
mov ecx, 0x5dbf4b7
jmp 0x10014947
cmp ecx, 0x369d91f8
jg 0x10015536
cmp ecx, 0x2cc14457
je 0x10015c5d
cmp ecx, 0x2ce88c9c
je 0x10015ca0
cmp ecx, 0x33b9f5f7
jne 0x10014947
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov ecx, 0xf057343d
jmp 0x10014947
cmp ecx, 0xf76f382f
je 0x10015cda
cmp ecx, 0xfd2b5db2
je 0x10015ce4
cmp ecx, 0x31cb489
jne 0x10014947
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov eax, dword [ebp - 0x18]
mov ecx, 0xba7f31f5
jmp 0x10014947
cmp ecx, 0x6b9b56c9
je 0x10015d3c
cmp ecx, 0x750e4303
je 0x10015d59
cmp ecx, 0x7881e7db
jne 0x10014947
mov ecx, 0x327ca7e
jmp 0x10014947
cmp ecx, 0x91e70bda
je 0x10015d75
cmp ecx, 0x98baf049
je 0x10015dfa
cmp ecx, 0x99e0a82e
jne 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xfffffffe
and eax, 1
or eax, edx
xor ecx, eax
test ecx, eax
sete dl
setne ah
cmp dword [0x10098e28], 0xa
setge al
setl cl
and ah, cl
and al, dl
or al, ah
mov ah, cl
xor ah, dl
or cl, dl
xor cl, 1
or cl, ah
mov edx, ecx
xor dl, al
mov edx, 0xc8eedbbc
mov ebx, 0x3bb5e0e1
cmovne edx, ebx
test cl, cl
mov ecx, 0xc8eedbbc
jmp 0x10015bd3
cmp ecx, 0x98fb331
je 0x10015e0f
cmp ecx, 0xa0321e0
je 0x10015e8b
cmp ecx, 0x107d9831
jne 0x10014947
mov eax, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x10]
push esi
push esi
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
mov ecx, 0x91e70bda
jmp 0x10014947
cmp ecx, 0xd8e12f3a
je 0x10015e98
cmp ecx, 0xd95d8a42
je 0x10015f01
cmp ecx, 0xdbe64381
jne 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0x6778eb3b
and eax, 0x988714c4
or eax, edx
xor eax, 0x6778eb3a
or eax, ecx
cmp eax, 0xffffffff
setne al
cmp dword [0x10098e28], 0xa
setge cl
mov edx, ecx
xor dl, al
or cl, al
mov eax, ecx
xor al, dl
mov eax, 0x2cc14457
cmovne eax, edi
test cl, cl
mov ecx, 0x2cc14457
cmovne ecx, eax
test dl, dl
cmove ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x64], eax
jmp 0x10014947
cmp ecx, 0x45f2547c
je 0x10015f0b
cmp ecx, 0x4e60c3ee
je 0x10015f21
cmp ecx, 0x541fd788
jne 0x10014947
cmp byte [ebp - 0x1b], 0
mov ecx, 0x33b9f5f7
mov eax, 0x98baf049
cmovne ecx, eax
jmp 0x10014947
cmp ecx, 0xba7f31f5
je 0x10015f6d
cmp ecx, 0xbc1e4eab
je 0x10015f7f
cmp ecx, 0xbf54311b
jne 0x10014947
mov ecx, 0xf49b255c
jmp 0x10014947
cmp ecx, 0x27bf44d7
je 0x10015f8d
cmp ecx, 0x2c84d6a8
je 0x10015ff9
cmp ecx, 0x2c8c09d8
jne 0x10014947
cmp dword [ebp - 0x38], 0
setne byte [ebp - 0x19]
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xfffffffe
and eax, 1
or eax, edx
xor ecx, eax
test ecx, eax
sete al
setne cl
cmp dword [0x10098e28], 0xa
setl dl
setge ah
or ah, cl
xor dl, al
mov al, dl
xor al, ah
test dl, dl
mov ecx, 0x611e0b71
mov ebx, 0x629db7a9
cmovne ecx, ebx
test ah, ah
mov edx, 0x611e0b71
jmp 0x10016235
cmp ecx, 0xf151cfb3
je 0x10016003
cmp ecx, 0xf3c07431
je 0x10016024
cmp ecx, 0xf49b255c
jne 0x10014947
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x68], eax
mov ecx, 0x89b2a4e7
jmp 0x10014947
cmp ecx, 0x698cd1fb
je 0x1001603a
cmp ecx, 0x6a17a462
je 0x10016095
cmp ecx, 0x6aa27623
jne 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xf7f3c091
and eax, 0x80c3f6e
or eax, edx
xor eax, 0x80c3f6f
xor ecx, eax
test ecx, eax
sete al
setne cl
cmp dword [0x10098e28], 0xa
setl dl
setge ah
and al, ah
or ah, cl
and dl, cl
or dl, al
mov al, dl
xor al, ah
test dl, dl
mov ecx, 0x5f40aa9
mov ebx, 0xafbe3acd
cmovne ecx, ebx
test ah, ah
mov edx, 0x5f40aa9
jmp 0x10016235
cmp ecx, 0xa85da8df
je 0x100160ab
cmp ecx, 0xa92d5d96
je 0x100160c5
cmp ecx, 0xac418248
jne 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xdb43f88b
and eax, 0x24bc0774
or eax, edx
xor eax, 0x24bc0775
xor ecx, eax
test ecx, eax
sete dl
setne ah
cmp dword [0x10098e28], 0xa
setge al
setl cl
and ah, cl
and al, dl
or al, ah
mov ah, cl
xor ah, dl
or cl, dl
xor cl, 1
or cl, ah
mov edx, ecx
xor dl, al
mov edx, 0xa92d5d96
mov ebx, 0x750e4303
cmovne edx, ebx
test cl, cl
mov ecx, 0xa92d5d96
jmp 0x10015bd3
cmp ecx, 0x16239f97
je 0x100160cf
cmp ecx, 0x1aaa0b1d
je 0x100160d9
cmp ecx, 0x1faa9d94
jne 0x10014947
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
mov ecx, 0xf151cfb3
jmp 0x10014947
cmp ecx, 0xe7b69385
je 0x10016139
cmp ecx, 0xe7d8936a
je 0x1001614f
cmp ecx, 0xe98ff93a
jne 0x10014947
mov eax, dword [0x10098e24]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0x460a578a
mov edx, eax
and edx, 0xb9f5a875
or edx, ecx
xor edx, 0xb9f5a874
and eax, 0xfffffffe
or eax, edx
xor eax, 0xa1728587
xor eax, 0x5e8d7a78
sete cl
setne dl
cmp dword [0x10098e28], 0xa
setge ah
setl ch
mov al, ch
xor al, dl
and al, ch
and ah, cl
and ch, dl
or ch, ah
mov cl, al
xor cl, ch
mov edx, 0x80a6df2
mov ebx, 0xd95d8a42
cmovne edx, ebx
test ch, ch
mov ecx, edx
jmp 0x10015678
cmp ecx, 0x5ed2001c
je 0x10016161
cmp ecx, 0x611e0b71
je 0x100161c1
cmp ecx, 0x629db7a9
jne 0x10014947
mov ecx, 0xe49501c1
jmp 0x10014947
cmp ecx, 0xce2eeabd
je 0x100161ce
cmp ecx, 0xd0fc85e9
je 0x100161d8
cmp ecx, 0xd23c882e
jne 0x10014947
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
mov ecx, 0x6aa27623
jmp 0x10014947
cmp ecx, 0x369d91f9
je 0x100161f4
cmp ecx, 0x37dfee8b
je 0x10016242
cmp ecx, 0x39170103
jne 0x10014947
mov ecx, dword [0x10098e24]
mov eax, ecx
not eax
imul eax, ecx
test al, 1
sete cl
cmp dword [0x10098e28], 0xa
setl ch
setge dl
and cl, dl
or dl, al
and ch, al
or ch, cl
mov eax, edx
xor al, ch
test al, 1
mov eax, 0x4e60c3ee
mov ebx, 0x5cd4d9eb
cmovne eax, ebx
test ch, ch
mov ecx, eax
mov ebx, 0x4e60c3ee
cmovne ecx, ebx
test dl, 1
cmovne ecx, eax
jmp 0x10014947
cmp ecx, 0x5f40aa9
je 0x1001624c
cmp ecx, 0x62d20fc
jne 0x10014947
mov ecx, 0x62eab0a5
mov dword [ebp - 0x34], 0
jmp 0x10014947
cmp ecx, 0x7eb06b11
je 0x10016268
cmp ecx, 0x7f6d0c5b
jne 0x10014947
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
mov ecx, 0xe7d8936a
jmp 0x10014947
cmp ecx, 0x8af4197e
jne 0x10016272
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x60]
push dword [ebp - 0x64]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
mov ecx, 0x5ebaefe5
jmp 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xfffffffe
and eax, 1
or eax, edx
xor ecx, eax
test ecx, eax
sete al
setne cl
cmp dword [0x10098e28], 0xa
setl dl
setge ah
and al, ah
or ah, cl
and dl, cl
or dl, al
mov al, dl
xor al, ah
test dl, dl
mov ecx, 0x7881e7db
mov edx, 0x3b360639
cmovne ecx, edx
test ah, ah
mov ebx, 0x7881e7db
cmovne ecx, ebx
jmp 0x10015bd6
mov ecx, 0xa6cbd9c0
jmp 0x10014947
push eax
mov eax, esp
mov dword [ebp - 0x14], eax
push eax
mov eax, esp
mov dword [ebp - 0x10], eax
mov ecx, 0x2ce88c9c
jmp 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xc5e8d9f
and eax, 0xf3a17260
or eax, edx
xor eax, 0xc5e8d9e
or eax, ecx
cmp eax, 0xffffffff
setne al
cmp dword [0x10098e28], 0xa
setge cl
mov edx, ecx
or dl, al
xor cl, al
mov eax, edx
xor al, cl
test cl, cl
mov ecx, 0x37dfee8b
mov ebx, 0xb02c95b8
cmovne ecx, ebx
test dl, dl
mov edx, 0x37dfee8b
jmp 0x10016235
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
not al
or al, 0xfe
cmp al, 0xff
sete al
cmp dword [0x10098e28], 0xa
setl dl
xor al, dl
mov ecx, eax
xor cl, 1
and dl, cl
xor cl, dl
mov ebx, 0x39170103
mov ecx, 0x5cd4d9eb
cmovne ebx, ecx
test al, al
mov ecx, ebx
mov eax, 0x39170103
jmp 0x100159cd
mov eax, dword [ebp - 0x10]
mov ecx, 0x634ed83b
jmp 0x10014947
mov eax, dword [ebp - 0x10]
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0x5763c45d
and eax, 0xa89c3ba2
or eax, edx
xor eax, 0xa89c3ba3
xor ecx, eax
test ecx, eax
sete al
setne cl
cmp dword [0x10098e28], 0xa
setl dl
xor cl, dl
mov ah, al
xor ah, dl
xor cl, 1
or dl, al
xor dl, 1
or dl, cl
mov al, dl
xor al, ah
test dl, dl
mov ecx, 0xc4a925b9
mov edx, 0x80a6df2
cmovne ecx, edx
test ah, ah
cmove ecx, edx
test al, al
mov eax, 0xc4a925b9
cmove ecx, eax
jmp 0x10014947
mov ecx, 0x1620ef72
jmp 0x10014947
mov ecx, 0x14c9c085
jmp 0x10014947
push dword [ebp - 0x10]
push dword [ebp - 0x40]
push dword [ebp - 0x44]
push dword [ebp - 0x48]
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
test eax, eax
setne byte [ebp - 0x1b]
mov eax, dword [0x10098e24]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp dword [0x10098e28], 0xa
setge al
setl cl
and dl, cl
and al, ah
or al, dl
mov edx, ecx
xor dl, ah
or cl, ah
xor cl, 1
or cl, dl
mov edx, ecx
xor dl, al
mov edx, 0x541fd788
mov ebx, 0x5f40aa9
cmovne edx, ebx
test cl, cl
mov ecx, 0x541fd788
jmp 0x10015bd3
mov ecx, 0x39170103
jmp 0x10014947
mov eax, dword [0x10098e24]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0x54b9a6c5
mov edx, eax
and edx, 0xab46593a
or edx, ecx
xor edx, 0xab46593b
and eax, 0xfffffffe
or eax, edx
xor eax, 0x4bb0612b
cmp eax, 0xb44f9ed4
setne al
cmp dword [0x10098e28], 0xa
setge cl
mov edx, ecx
or dl, al
xor cl, al
mov eax, edx
xor al, cl
mov eax, 0xf3c07431
mov ebx, 0x16239f97
cmovne eax, ebx
test cl, cl
mov ecx, eax
mov ebx, 0xf3c07431
cmovne ecx, ebx
test dl, dl
cmovne ecx, eax
jmp 0x10014947
mov eax, dword [0x10098e24]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0xf7cbc9ff
mov edx, eax
and edx, 0x8343600
or edx, ecx
xor edx, 0x8343601
and eax, 0xfffffffe
or eax, edx
xor eax, 0xff9a04c5
xor eax, 0x65fb3a
setne al
sete cl
cmp dword [0x10098e28], 0xa
setl dl
setge ah
and cl, ah
and dl, al
or dl, cl
or ah, al
mov al, ah
xor al, dl
test ah, ah
mov ecx, 0x2c8c09d8
mov ebx, 0x611e0b71
cmovne ecx, ebx
test dl, dl
cmove ecx, ebx
test al, al
mov eax, 0x2c8c09d8
cmove ecx, eax
jmp 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx - 1]
imul eax, ecx
and eax, 1
sete cl
cmp dword [0x10098e28], 0xa
setge ch
setl dh
mov dl, dh
xor dl, al
and dl, dh
and ch, cl
and dh, al
or dh, ch
mov eax, edx
xor al, dh
mov eax, 0xe00272b0
mov ebx, 0xbf54311b
cmovne eax, ebx
test dh, dh
mov ecx, eax
cmovne ecx, ebx
jmp 0x1001608b
mov ecx, 0x33b9f5f7
jmp 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xb0e3d9e9
and eax, 0x4f1c2616
or eax, edx
xor eax, 0x4f1c2617
xor ecx, eax
test ecx, eax
sete al
cmp dword [0x10098e28], 0xa
setl dl
xor al, dl
mov ecx, eax
xor cl, 1
and dl, cl
xor cl, dl
mov ebx, 0xea07da33
mov ecx, 0xe00272b0
cmovne ebx, ecx
test al, al
mov ecx, ebx
mov eax, 0xea07da33
cmovne ecx, eax
jmp 0x10015c96
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xfffffffe
and eax, 1
or eax, edx
xor ecx, eax
test ecx, eax
sete al
setne cl
cmp dword [0x10098e28], 0xa
setl dl
setge ah
and al, ah
or ah, cl
and dl, cl
or dl, al
mov al, ah
xor al, dl
mov ebx, 0x27bf44d7
mov ecx, 0x1aaa0b1d
cmovne ebx, ecx
test dl, dl
mov ecx, ebx
mov edx, 0x27bf44d7
jmp 0x10015e7e
mov ecx, 0x5bef15ed
jmp 0x10014947
mov eax, dword [0x10098e24]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0x7742e7be
mov edx, eax
and edx, 0x88bd1841
or edx, ecx
xor edx, 0x88bd1840
and eax, 0xfffffffe
or eax, edx
xor eax, 0xffffffff
setne cl
sete ah
cmp dword [0x10098e28], 0xa
setl al
setge ch
mov edx, eax
or al, ah
and ah, ch
and dl, cl
or dl, ah
xor ch, cl
xor al, 1
or al, ch
mov ecx, eax
xor cl, dl
mov ebx, 0xdbe64381
cmovne ebx, edi
test al, al
mov ecx, 0xdbe64381
jmp 0x10015c93
mov eax, dword [ebp - 0x18]
mov eax, dword [0x10098e24]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete al
cmp dword [0x10098e28], 0xa
setge dl
setl ah
and ah, cl
and al, dl
or al, ah
or dl, cl
mov ecx, edx
xor cl, al
test cl, 1
mov ebx, 0x369d91f9
mov ecx, 0x7eb06b11
cmovne ebx, ecx
test dl, 1
mov ecx, 0x369d91f9
cmovne ecx, ebx
jmp 0x10016238
mov ecx, 0xea07da33
jmp 0x10014947
cmp byte [ebp - 0x19], 0
mov ecx, 0xb4f9400a
mov eax, 0x31cb489
cmovne ecx, eax
jmp 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xd8875448
and eax, 0x2778abb7
or eax, edx
xor eax, 0x2778abb6
xor ecx, eax
test ecx, eax
sete al
setne cl
cmp dword [0x10098e28], 0xa
setl dl
setge ah
and al, ah
or ah, cl
and dl, cl
or dl, al
mov al, ah
xor al, dl
mov ebx, 0x78d9a797
mov ecx, 0xa12a606c
cmovne ebx, ecx
test dl, dl
mov ecx, ebx
mov edx, 0x78d9a797
jmp 0x10015e7e
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xf758c6fa
and eax, 0x8a73905
or eax, edx
xor eax, 0xf758c6fb
or eax, ecx
xor eax, 0xffffffff
sete dl
setne ah
cmp dword [0x10098e28], 0xa
setge ch
setl cl
mov al, ch
xor ch, ah
and ah, cl
and al, dl
or al, ah
or cl, dl
xor cl, 1
or cl, ch
mov edx, ecx
xor dl, al
mov edx, 0x6a6d684
mov ebx, 0x37dfee8b
cmovne edx, ebx
test cl, cl
mov ecx, 0x6a6d684
cmovne ecx, edx
test al, al
cmove ecx, edx
jmp 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0x854a0c65
and eax, 0x7ab5f39a
or eax, edx
xor eax, 0x7ab5f39b
xor ecx, eax
test ecx, eax
sete dl
setne ah
cmp dword [0x10098e28], 0xa
setge ch
setl cl
mov al, ch
xor ch, ah
and ah, cl
and al, dl
or al, ah
or cl, dl
xor cl, 1
or cl, ch
mov edx, ecx
xor dl, al
test cl, cl
mov ecx, 0x91e70bda
mov ebx, 0x107d9831
cmovne ecx, ebx
test al, al
cmove ecx, ebx
test dl, dl
mov eax, 0x91e70bda
cmove ecx, eax
jmp 0x10014947
mov ecx, 0x27bf44d7
jmp 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
and al, 1
cmp dword [0x10098e28], 0xa
setge cl
mov edx, ecx
xor dl, al
or al, cl
mov ecx, eax
xor cl, dl
mov ebx, 0x698cd1fb
mov ecx, 0x2554cc4e
cmovne ebx, ecx
test al, al
mov ecx, 0x698cd1fb
cmovne ecx, ebx
test dl, dl
cmove ecx, ebx
jmp 0x10014947
push eax
mov eax, esp
mov dword [ebp - 0x24], eax
push eax
mov eax, esp
mov dword [ebp - 0x18], eax
sub esp, 0x1c
mov eax, esp
mov dword [ebp - 0x28], eax
push eax
mov eax, esp
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov dword [eax], ecx
mov eax, dword [ebp - 0x14]
cmp dword [eax], 0
mov ecx, 0xd84cbb83
mov eax, 0x62d20fc
cmove ecx, eax
jmp 0x10014947
mov ecx, 0x8af4197e
jmp 0x10014947
mov eax, dword [ebp - 0x4c]
cmp eax, 2
setne byte [ebp - 0x1c]
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete cl
cmp dword [0x10098e28], 0xa
setl dl
setge dh
and cl, dh
or dh, al
and dl, al
or dl, cl
mov al, dh
xor al, dl
test dl, dl
mov ecx, 0xa0321e0
mov ebx, 0xd8a0c93d
cmovne ecx, ebx
test dh, 1
mov edx, 0xa0321e0
cmovne ecx, edx
test al, 1
cmove ecx, ebx
jmp 0x10014947
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x58]
mov dword [eax], ecx
mov eax, dword [ebp - 0x28]
cmp dword [eax + 4], 4
setne byte [ebp - 0x1d]
mov ecx, 0xe7b69385
jmp 0x10014947
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push dword [ebp - 0x30]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, 0x7bf1d3d9
jmp 0x10014947
mov eax, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x10]
push esi
push esi
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
mov edx, dword [0x10098e24]
lea ecx, [edx + 1]
imul ecx, edx
mov edx, ecx
not edx
mov ebx, edx
and ebx, 0x8d72004
and ecx, 0xf728dffb
or ecx, ebx
xor ecx, 0x8d72005
or ecx, edx
xor ecx, 0xffffffff
setne cl
sete dl
cmp dword [0x10098e28], 0xa
setl dh
setge ch
and dl, ch
and dh, cl
or dh, dl
or ch, cl
mov dl, ch
xor dl, dh
test ch, ch
mov ecx, 0xe98ff93a
mov ebx, 0x107d9831
cmovne ecx, ebx
test dh, dh
cmove ecx, ebx
mov dword [ebp - 0x38], eax
test dl, dl
mov eax, 0xe98ff93a
cmove ecx, eax
jmp 0x10014947
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
add eax, 4
mov dword [ebp - 0x50], eax
mov ecx, 0xe7647fec
jmp 0x10014947
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push dword [ebp - 0x30]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xaf0e4c58
and eax, 0x50f1b3a7
or eax, edx
xor eax, 0x50f1b3a6
xor ecx, eax
test ecx, eax
sete al
setne cl
cmp dword [0x10098e28], 0xa
setl dl
setge ah
and al, ah
or ah, cl
and dl, cl
or dl, al
mov al, ah
xor al, dl
mov ebx, 0xac418248
mov ecx, 0xd0fc85e9
cmovne ebx, ecx
test dl, dl
mov ecx, ebx
mov edx, 0xac418248
cmovne ecx, edx
test ah, ah
cmovne ecx, ebx
jmp 0x10014947
mov eax, dword [ebp - 0x4c]
mov ecx, 0xfd2b5db2
jmp 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xa1242c26
and eax, 0x5edbd3d9
or eax, edx
xor eax, 0x5edbd3d8
xor ecx, eax
test ecx, eax
sete al
cmp dword [0x10098e28], 0xa
setl dl
xor al, dl
mov ah, al
mov ecx, 0xa12a606c
mov ebx, 0x5bef15ed
cmovne ecx, ebx
not ah
test ah, dl
mov edi, 0xa12a606c
cmove ecx, edi
mov edi, 0x2c84d6a8
test al, al
cmovne ecx, ebx
test ah, dl
mov eax, dword [ebp - 0x24]
cmovne ecx, ebx
jmp 0x10014947
mov ecx, 0x24ccfbf5
jmp 0x10014947
cmp byte [ebp - 0x1a], 0
mov ecx, 0x14c9c085
mov eax, 0xa85da8df
cmovne ecx, eax
jmp 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete cl
cmp dword [0x10098e28], 0xa
setge dl
setl ch
mov dh, ch
xor dh, al
and dh, ch
and dl, cl
and ch, al
or ch, dl
mov al, ch
xor al, dh
test ch, ch
mov ecx, 0x7881e7db
mov ebx, 0x327ca7e
cmovne ecx, ebx
test dh, dh
mov edx, 0x7881e7db
cmove ecx, edx
jmp 0x1001612f
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov ecx, 0x91dc5a2b
jmp 0x10014947
cmp byte [ebp - 0x1e], 0
mov ecx, 0x6a17a462
jmp 0x10016142
mov eax, dword [0x10098e24]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0xd2a07a88
mov edx, eax
and edx, 0x2d5f8577
or edx, ecx
xor edx, 0x2d5f8576
and eax, 0xfffffffe
or eax, edx
cmp eax, 0xffffffff
sete al
cmp dword [0x10098e28], 0xa
setl cl
mov edx, ecx
xor dl, al
or cl, al
xor cl, 1
or cl, dl
mov eax, ecx
xor al, dl
test cl, cl
mov ecx, 0xbc1e4eab
mov ebx, 0x1aaa0b1d
cmovne ecx, ebx
test dl, dl
cmove ecx, ebx
test al, al
mov eax, 0xbc1e4eab
cmove ecx, eax
jmp 0x10014947
mov ecx, 0xdbe64381
jmp 0x10014947
push esi
push esi
push esi
push esi
push esi
push esi
push esi
xor eax, eax
dec eax
push eax
push 2
push eax
push dword [ebp - 0x54]
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
mov ecx, 0xeb436d32
jmp 0x10014947
cmp byte [ebp - 0x1c], 0
mov ecx, 0x33b9f5f7
mov eax, 0x1faa9d94
cmovne ecx, eax
jmp 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xfffffffe
and eax, 1
or eax, edx
xor ecx, eax
test ecx, eax
sete al
cmp dword [0x10098e28], 0xa
setl cl
mov edx, ecx
xor dl, al
or cl, al
xor cl, 1
or cl, dl
mov eax, ecx
xor al, dl
mov eax, 0xf76f382f
mov ebx, 0x2554cc4e
cmovne eax, ebx
test cl, cl
mov ecx, 0xf76f382f
cmovne ecx, eax
test dl, dl
cmove ecx, eax
jmp 0x10014947
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov ecx, 0xd6d3edf4
xor eax, eax
inc eax
mov dword [ebp - 0x34], eax
jmp 0x10014947
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
mov ecx, 0xd23c882e
jmp 0x10014947
mov ecx, 0x71d6def
jmp 0x10014947
mov ecx, 0x1fac253a
jmp 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0x77762328
and eax, 0x8889dcd7
or eax, edx
xor eax, 0x77762329
or eax, ecx
cmp eax, 0xffffffff
sete al
cmp dword [0x10098e28], 0xa
setl dl
xor al, dl
mov ah, al
not ah
mov ecx, 0x3bb5e0e1
mov ebx, 0x99e0a82e
cmovne ecx, ebx
test ah, dl
mov edx, 0x3bb5e0e1
cmove ecx, edx
cmovne ecx, ebx
test al, al
cmovne ecx, ebx
jmp 0x10014947
cmp byte [ebp - 0x1d], 0
mov ecx, 0x7f6d0c5b
mov eax, 0x14b0692b
cmovne ecx, eax
jmp 0x10014947
cmp dword [ebp - 0x5c], 0
sete byte [ebp - 0x1e]
mov ecx, 0x9e9ab81f
jmp 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xefda2bff
and eax, 0x1025d400
or eax, edx
xor eax, 0xefda2bfe
or eax, ecx
xor eax, 0xffffffff
sete al
setne cl
cmp dword [0x10098e28], 0xa
setl dl
setge ah
and al, ah
or ah, cl
and dl, cl
or dl, al
mov al, dl
xor al, ah
test dl, dl
mov ecx, 0xa0321e0
mov ebx, 0xfd2b5db2
cmovne ecx, ebx
test ah, ah
mov edx, 0xa0321e0
jmp 0x10016235
mov eax, dword [ebp - 0x38]
mov ecx, 0x2c8c09d8
jmp 0x10014947
mov ecx, 0xb4f9400a
jmp 0x10014947
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push dword [ebp - 0x30]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, 0x98fb331
jmp 0x10014947
mov ecx, dword [0x10098e24]
lea eax, [ecx - 1]
imul eax, ecx
and eax, 1
sete cl
cmp dword [0x10098e28], 0xa
setl dl
setge dh
and cl, dh
or dh, al
and dl, al
or dl, cl
mov al, dh
xor al, dl
test dl, dl
mov ecx, 0x7eb06b11
mov ebx, 0x64377f23
cmovne ecx, ebx
test dh, dh
mov edx, 0x7eb06b11
cmovne ecx, edx
test al, al
cmove ecx, ebx
jmp 0x10014947
mov ecx, 0x6a6d684
jmp 0x10014947
push dword [ebp - 0x10]
push dword [ebp - 0x40]
push dword [ebp - 0x44]
push dword [ebp - 0x48]
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
mov ecx, 0xafbe3acd
jmp 0x10014947
mov ecx, 0x369d91f9
jmp 0x10014947
cmp ecx, 0x89b2a4e7
jne 0x10014947
mov eax, dword [ebp - 0x68]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret