Function at 0x10050736
Capabilities:
Modify service

Disassembly:
mov eax, 0x100735c6
call fcn.10071d48
sub esp, 0x80
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x28], edi
cmp dword [edi], 0
je 0x10050b32
push dword [edi]
xor ebx, ebx
push ebx
push dword [edi + 4]
call fcn.10021100
add esp, 0xc
lea ecx, [ebp - 0x5c]
push 2
pop esi
push esi
call fcn.10021783
push 7
mov dword [ebp - 4], ebx
pop eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x24], 0x7b6a
mov dword [ebp - 0x1c], ebx
jmp 0x10050797
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x5c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x1005078b
mov dword [ebp - 0x1c], ebx
jmp 0x100507af
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x30], 0x18d4081c
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x100507a1
mov dword [ebp - 0x30], ebx
cmp dword [ebp - 0x30], 1
jg 0x10050964
mov dword [ebp - 0x20], 0xfffffff8
lea ecx, [ebp - 0x50]
push 4
call fcn.10021783
mov byte [ebp - 4], 1
mov dword [ebp - 0x20], ebx
jmp 0x100507eb
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x50]
mov dword [eax + ecx*4], 4
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x100507db
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 1
jg 0x10050949
mov edi, dword [ebp - 0x50]
mov dword [ebp - 0x1c], 0xd3860a42
cmp dword [ebp - 0x20], 3
push 7
sbb eax, eax
neg eax
pop ecx
cmp ecx, eax
sbb eax, eax
neg eax
imul eax, dword [ebp - 0x2c]
cmp eax, 0xfffffff6
ja 0x1005082c
cmp dword [ebp - 0x1c], ebx
je 0x1005082c
xor eax, eax
inc eax
jmp 0x1005082e
mov eax, ebx
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x30]
imul edx, eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + ecx*4]
sub eax, edx
jne 0x1005084a
cmp dword [ebp - 0x1c], ebx
jne 0x1005084a
mov eax, ebx
jmp 0x1005084d
xor eax, eax
inc eax
mov dword [edi + 4], eax
mov dword [ebp - 0x1c], ebx
jmp 0x10050932
mov dword [ebp - 0x24], 0x5b481d3e
mov dword [ebp - 0x24], ebx
jmp 0x10050872
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x78], 0x8651162f
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x10050864
mov dword [ebp - 0x74], ebx
jmp 0x10050915
push dword [ebp - 0x28]
movdqa xmm0, xmmword [0x10008ed0]
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x88]
mov dword [ebp - 0x44], ebx
push eax
push ebx
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x40], ebx
movdqu xmmword [ebp - 0x88], xmm0
mov dword [ebp - 0x3c], ebx
call fcn.10026b5e
mov edx, dword [ebp - 0x44]
mov eax, dword [edx + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
sub ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, dword [edx + 8]
setg al
xor edx, edx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
setne dl
add ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setle dl
sub edx, 0xffff
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setl cl
xor eax, eax
cmp ecx, esi
lea ecx, [ebp - 0x44]
setne al
mov dword [ebp - 0x24], eax
call fcn.10021805
inc dword [ebp - 0x74]
cmp dword [ebp - 0x74], 4
jle 0x10050880
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x1005092f
push ebx
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffffb
jge 0x10050858
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 1
jle 0x10050801
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], bl
call fcn.10021805
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 1
jle 0x100507c1
mov edi, dword [ebp - 0x28]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.10021805
push dword [edi + 4]
call fcn.10059dd7
mov dword [ebp - 0x24], 0x16f8
cmp dword [ebp - 0x24], 0x1a13
pop ecx
jle 0x100509cb
push ebx
push 0x1fbd
call dword [sym.imp.GDI32.dll_SetTextColor]
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x1061af58
and eax, esi
cdq
push edx
push eax
call fcn.10021543
inc edi
cmp edi, 0x524f
jl 0x10050999
inc esi
cmp esi, 0x35d9
jl 0x10050997
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SystemTimeToTzSpecificLocalTime]
mov edi, dword [ebp - 0x28]
push 2
pop esi
mov dword [ebp - 4], esi
cmp dword [ebp - 0x24], 0x13ac
jge 0x100509e6
mov edx, 0x10008c58
mov ecx, 0x1061af58
call fcn.10025cea
or dword [ebp - 4], 0xffffffff
push 3
lea ecx, [ebp - 0x68]
call fcn.10021783
mov dword [ebp - 0x24], 0xad59e57a
mov dword [ebp - 0x24], ebx
jmp 0x10050a38
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x68]
mov dword [eax + ecx*4], 0xc204
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x10050a28
mov dword [ebp - 0x24], esi
cmp dword [ebp - 0x24], ebx
jl 0x10050a60
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10050a5b
push ebx
push 0x147b
call dword [sym.imp.USER32.dll_GetWindowPlacement]
dec dword [ebp - 0x24]
jns 0x10050a46
mov dword [ebp - 0x24], 8
lea ecx, [ebp - 0x68]
call fcn.10021805
mov dword [edi + 4], ebx
mov dword [ebp - 0x1c], 0xfffffffe
mov dword [ebp - 0x24], ebx
jmp 0x10050a8c
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x38], 0xcff0ea75
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x10050a7e
mov dword [ebp - 0x1c], ebx
jmp 0x10050b10
mov dword [ebp - 0x24], 0xab227d3
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp + eax*4 - 0x38]
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x38], esi
mov eax, dword [ebp - 0x1c]
cmp eax, 0x79c6
mov eax, dword [ebp - 0x24]
setne cl
xor edx, edx
cmp esi, ecx
setge dl
xor ecx, ecx
cmp eax, 0x9c25
setne cl
cmp edx, ecx
jne 0x10050ade
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x38], ebx
je 0x10050ade
xor ecx, ecx
inc ecx
jmp 0x10050ae0
mov ecx, ebx
mov eax, dword [ebp - 0x1c]
sub ecx, eax
cmp ecx, dword [ebp - 0x24]
je 0x10050af3
cmp dword [ebp - 0x24], ebx
jne 0x10050af3
mov ecx, ebx
jmp 0x10050af6
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x24]
setne dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x24], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 1
jle 0x10050a96
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10050b30
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
mov dword [edi], ebx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret