Function at 0x10038bfc
Capabilities:
Modify service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push esi
mov esi, ecx
xor ecx, ecx
inc ecx
xor ebx, ebx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], 0x7d2703d9
mov dword [ebp - 0x14], 0x9ecf4a41
mov dword [ebp - 0x24], 0xd6b3bfa3
mov dword [ebp - 0x20], 0xfffffffd
mov dword [ebp - 0xc], 0xf145ba13
mov dword [ebp - 8], ebx
jmp 0x10038c44
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x2c], 0x86fd5d70
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x10038c36
mov dword [ebp - 8], ebx
jmp 0x10038c59
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x18], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x10038c4f
mov dword [ebp - 8], ebx
jmp 0x10038c6d
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1c], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x10038c63
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10038c97
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x1c07
push 0x9ae
push 0x26f4
push ebx
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], 0xe58b
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x14]
jge 0x10038d18
mov dword [ebp - 0x20], 0x2c752785
mov dword [ebp - 0xc], ebx
jmp 0x10038ce4
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x38], 0x12535b5b
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x10038cd6
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x30]
dec ecx
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, eax
je 0x10038d07
cmp dword [ebp - 0x30], ebx
je 0x10038d07
cmp dword [ebp - 8], ebx
jne 0x10038d0a
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x28], eax
jmp 0x10038dc5
mov dword [ebp - 0x10], 0x5a6edb5b
mov dword [ebp - 0xc], ebx
cmp dword [ebp - 0xc], ebx
jl 0x10038dc5
mov dword [ebp - 0x24], 0xfffffff9
xor ecx, ecx
mov dword [ebp - 0x20], 6
mov dword [ebp - 0x24], 0xc3d3
mov eax, dword [ebp - 0x24]
cmp eax, 0x9e48
setne cl
sub ecx, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
cmp ecx, 0x2197
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
setge bl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0xc]
setl dl
xor ecx, ecx
cmp edx, ebx
setg cl
xor edx, edx
imul eax, ecx
cmp eax, 0x453d
mov eax, dword [ebp - 0xc]
setg dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x18]
cmp eax, edx
mov eax, dword [ebp - 0xc]
setg cl
xor ebx, ebx
mov dword [ebp + eax*4 - 0x18], ecx
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x10038dbc
cmp dword [ebp - 0x10], ebx
jne 0x10038dbc
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10038db7
push ebx
call fcn.1003adbf
pop ecx
dec dword [ebp - 0x14]
jns 0x10038da3
dec dword [ebp - 0xc]
jns 0x10038d2b
cmp dword [esi], 0
je 0x10038e06
push dword [esi]
push ebx
push dword [esi + 4]
call fcn.1001fc71
push 0x48e1
push 0x1ae5
push esi
push 0x524c
push 0x3c8a
push ebx
call fcn.1003b3e1
push 0x2d67
push 0x117
push ebx
push esi
call fcn.1003b38c
add esp, 0x34
mov dword [esi], ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret