Function at 0x10047435
Capabilities:
Modify service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
xor ebx, ebx
mov dword [ebp - 8], 0xa4a12b57
push edi
mov edi, ecx
mov dword [ebp - 0x10], ebx
jmp 0x1004745b
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1c], 0x799ac789
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 1
jl 0x1004744d
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], ebx
jl 0x10047483
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x1004747e
push ebx
push 0x2582
push ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayLock]
dec dword [ebp - 8]
jns 0x10047469
push esi
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 8], ebx
jmp 0x100474bd
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x100474a9
push 0x6bc
push ebx
call esi
push eax
call esi
push eax
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x100474ba
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jle 0x1004748f
push 0x72bf
push 1
push 0x5405
push 0x54d7
push edi
push 0x6548
call fcn.10042a9d
add esp, 0x18
lea ecx, [ebp - 0x30]
push 2
call fcn.10016499
mov dword [ebp - 0xc], 0x8c45cdbe
mov dword [ebp - 0x10], 6
mov dword [ebp - 0x10], ebx
jmp 0x1004750b
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x30]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x100474ff
xor edx, edx
mov dword [ebp - 0xc], ebx
inc edx
jmp 0x1004759c
mov dword [ebp - 8], ebx
mov dword [ebp - 0x18], 0xd9b4
mov dword [ebp - 0x10], edx
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x1004754f
push ebx
push 0x110e
push 0x1a0
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_MoveToEx]
xor edx, edx
inc edx
mov dword [ebp - 8], ebx
jmp 0x10047594
mov dword [ebp - 0x10], ebx
jmp 0x10047567
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x14], 0x5dae5a60
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x10047559
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], ebx
jl 0x1004758a
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x30]
cmp dword [eax + ecx*4], ebx
jne 0x1004758a
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
dec dword [ebp - 0x14]
jns 0x10047574
mov dword [ebp - 0x10], 0x28fdeb77
inc dword [ebp - 8]
cmp dword [ebp - 8], edx
jle 0x10047554
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edx
jle 0x1004751c
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x100475ca
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x98d
push 0x80f
push 0x2255
push ebx
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
lea ecx, [ebp - 0x30]
call fcn.1001651b
push edi
call fcn.1002bc21
xor esi, esi
mov edi, eax
inc esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], ebx
mov dword [ebp - 8], 0x50db8561
mov dword [ebp - 0x18], 0xffff
pop ecx
mov dword [ebp - 8], ebx
jmp 0x10047605
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x24], 0xc443
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x100475f7
mov dword [ebp - 8], ebx
jmp 0x1004761e
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x3c], 0x4b83
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x10047610
mov eax, dword [ebp - 0xc]
xor ecx, ecx
mov eax, dword [ebp - 0xc]
imul eax, dword [ebp - 0xc], 6
cmp eax, esi
setg cl
xor edx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
cmp ecx, eax
setle dl
mov dword [ebp - 8], edx
cmp dword [ebp - 0xc], ebx
jne 0x10047657
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0xc]
jne 0x10047657
mov esi, ebx
imul edx, dword [ebp - 0x10], 0xf
xor ecx, ecx
sub edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
cmp edx, eax
setle cl
cmp ecx, 0xf3e1
jl 0x10047679
cmp dword [ebp - 0x10], ebx
jne 0x10047679
mov ecx, ebx
jmp 0x1004767c
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0xc]
add eax, ecx
xor ecx, ecx
cmp esi, eax
pop esi
setne cl
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x18], ebx
je 0x100476ae
cmp dword [ebp - 0x24], ebx
je 0x100476ae
xor ebx, ebx
inc ebx
mov eax, dword [ebp - 8]
xor edx, edx
cmp ebx, 0xb017
sete dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
setle cl
imul edx, ecx, 0x851f
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, 1
setg al
mov dword [ebp - 8], eax
mov eax, edi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret