Function at 0x1004084d
Capabilities:
Start service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push esi
mov esi, ecx
push edi
cmp dword [esi], 0
je 0x10040b20
push dword [esi]
xor ebx, ebx
push ebx
push dword [esi + 4]
call fcn.100237cf
add esp, 0xc
mov dword [ebp - 8], 0x24f0
mov dword [ebp - 0xc], ebx
push 2
pop edi
jmp 0x1004088e
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x20], 0x1f2c29a
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x10040880
mov eax, dword [ebp - 8]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x100409b4
mov dword [ebp - 0x10], 0xfffffffa
mov dword [ebp - 0x14], 0x7f7ffff9
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x100408c5
push ebx
push ebx
push 0x18b
push ebx
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
mov dword [ebp - 8], 1
cmp dword [ebp - 8], ebx
jl 0x100409e3
mov eax, dword [ebp - 8]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x20]
mov dword [ebp - 0xc], 0x1f94
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + eax*4 - 0x20]
mov eax, dword [ebp - 0x10]
cmp ecx, eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
setl dl
add ecx, edx
xor ebx, ebx
mov eax, dword [ebp + eax*4 - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 8]
setle bl
xor ecx, ecx
sub ebx, dword [ebp + eax*4 - 0x20]
sub ebx, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x20]
test eax, eax
mov eax, dword [ebp - 8]
setne cl
xor edx, edx
cmp ecx, ebx
setg dl
dec edx
cmp edx, dword [ebp + eax*4 - 0x20]
jne 0x1004094c
mov eax, dword [ebp - 8]
xor ebx, ebx
mov eax, dword [ebp + eax*4 - 0x20]
mov dword [ebp - 0x20], eax
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x100409a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x100409a3
mov dword [ebp - 0x14], 0xffffffff
xor edx, edx
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x20]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x20]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x20]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x20]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x20]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp ecx, eax
mov eax, dword [ebp - 8]
setg dl
sub edx, dword [ebp + eax*4 - 0x20]
neg edx
sbb edx, edx
inc edx
xor ebx, ebx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
dec dword [ebp - 8]
jns 0x100408d5
jmp 0x100409e3
mov dword [ebp - 8], ebx
jmp 0x100409dd
mov dword [ebp - 0x14], 1
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x100409d5
push ebx
push 0xa98
push ebx
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
cmp dword [ebp - 0x14], ebx
jne 0x100409e3
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jne 0x100409b9
push dword [esi + 4]
call fcn.10062cf2
mov dword [ebp - 0x10], 0xd5e48d32
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
pop ecx
je 0x10040a04
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x10], 0xfffffff6
jmp 0x10040a6c
mov dword [ebp - 0xc], 0xee7d214c
mov dword [ebp - 0xc], ebx
jmp 0x10040a27
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x30], 0x5683c8fc
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x10040a19
mov dword [ebp - 0xc], ebx
jmp 0x10040a63
mov dword [ebp - 8], 0x7822e6e7
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x10040a49
push ebx
push ebx
call dword [sym.imp.GDI32.dll_GetRgnBox]
mov dword [ebp - 8], ebx
jmp 0x10040a5a
mov eax, dword [ebp - 8]
cmp dword [ebp + eax*4 - 0x30], ebx
jne 0x10040a60
inc dword [ebp - 8]
cmp dword [ebp - 8], 1
jle 0x10040a4e
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 1
jle 0x10040a31
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xfffffff9
jge 0x10040a0d
mov dword [esi + 4], ebx
mov dword [ebp - 0x18], 0x91df82
mov dword [ebp - 0x14], 0xfffffff6
mov dword [ebp - 0x18], 7
mov dword [ebp - 0xc], 0xc3ec3d4e
mov dword [ebp - 0x10], 0x3268
mov dword [ebp - 0x18], ebx
mov dword [ebp - 8], ebx
jmp 0x10040aae
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x28], 0x67215912
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x10040aa0
mov dword [ebp - 8], ebx
jmp 0x10040ac6
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x3c], 0x38330377
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x10040ab8
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
inc dword [ebp - 0x10]
test eax, eax
jne 0x10040b11
imul eax, dword [ebp - 0x28], 0x3fc2
mov ecx, 0xc0b333ee
cmp ecx, eax
mov eax, dword [ebp - 0x14]
sbb ecx, ecx
xor edx, edx
neg ecx
sub ecx, eax
mov eax, dword [ebp - 0x28]
cmp ecx, 0xa083
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xc], 0xa9c5a74d
mov dword [esi], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret