Function at 0x180013200
Capabilities:
Print debug messages

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], r9
mov dword [r11 + 0x18], r8d
mov dword [rsp + 0x10], edx
mov qword [r11 + 8], rcx
push rbx
push rdi
push r12
push r13
push r14
sub rsp, 0x70
mov edi, dword [r11 + 0x10]
xor r13d, r13d
cmp dword [rsp + 0xe8], r13d
mov eax, 0x38
mov r12d, 0x30
mov dword [rsp + 0x38], r13d
cmovne r12d, eax
mov dword [rsp + 0x34], r13d
test dword [0x180046490], 0x20000
mov r14d, r13d
mov ebx, r8d
je 0x18001328b
mov eax, dword [rsp + 0xc0]
lea rdx, str.HFunc_EnumServicesStatusExAW__type:__x__state:__x__cbBufSize:__d__n
mov r9d, ebx
mov dword [rsp + 0x20], eax
mov r8d, edi
lea rcx, [0x180046090]
call qword [0x1800477f0]
lea rcx, [0x180046090]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, 0xee070000
cmp qword [rsp + 0xa0], rax
je 0x1800132b7
mov ecx, 6
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, 1
add rsp, 0x70
pop r14
pop r13
pop r12
pop rdi
pop rbx
ret
test edi, 0x3ff
je 0x1800137ca
test bl, 3
je 0x1800137ca
lea r9, [rsp + 0x40]
mov edx, ebx
lea r8, [rsp + 0x30]
mov ecx, edi
call fcn.180009830
test eax, eax
jne 0x1800132f0
add rsp, 0x70
pop r14
pop r13
pop r12
pop rdi
pop rbx
ret
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x58], r15
test rax, rax
je 0x180013314
mov r14d, dword [rax]
mov dword [rsp + 0x38], r14d
mov r11d, dword [rsp + 0x30]
mov ebx, r14d
mov r8d, dword [rsp + 0xe0]
mov esi, r13d
mov eax, r14d
mov ebp, r13d
imul r15, rax, 0x38
mov r14d, r13d
add r15, qword [rsp + 0x40]
mov qword [rsp + 0x48], r15
mov rdi, r15
cmp ebx, r11d
jae 0x1800133be
mov r15d, dword [rsp + 0xc0]
mov rax, qword [rdi + 8]
mov rcx, 0xffffffffffffffff
nop dword [rax]
inc rcx
cmp word [rax + rcx*2], r13w
jne 0x180013360
mov rdx, qword [rdi]
mov rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], r13w
jne 0x180013374
test r8d, r8d
je 0x18001338e
add eax, 2
add eax, ecx
lea eax, [r12 + rax*2]
jmp 0x18001339f
add rax, rcx
lea rax, [rax*2 + 4]
shr rax, 1
add eax, r12d
lea ecx, [rax + rsi]
cmp ecx, r15d
ja 0x1800133b9
inc ebp
inc r14d
add rdi, 0x38
inc ebx
mov esi, ecx
cmp ebx, r11d
jb 0x180013352
mov r15, qword [rsp + 0x48]
mov r9d, dword [0x180046490]
bt r9d, 0x11
jae 0x180013407
mov r9d, ebp
lea rdx, str.___1__dwRequiredSize:__d__dwServiceCount:__d__n
mov r8d, esi
lea rcx, [0x180046090]
call qword [0x1800477f0]
lea rcx, [0x180046090]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov r9d, dword [0x180046490]
mov r11d, dword [rsp + 0x30]
mov r8d, dword [rsp + 0xe0]
cmp ebx, r11d
jae 0x1800134cb
test r8d, r8d
mov dword [rsp + 0x34], 0xea
mov r8d, r11d
je 0x180013475
sub r8d, ebx
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rdi + 8]
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], r13w
jne 0x180013440
mov rdx, qword [rdi]
mov rcx, 0xffffffffffffffff
inc rcx
cmp word [rdx + rcx*2], r13w
jne 0x180013454
add eax, 2
add rdi, 0x38
add eax, ecx
lea eax, [r12 + rax*2]
add esi, eax
sub r8, 1
jne 0x180013430
jmp 0x1800134cb
sub r8d, ebx
nop dword [rax + rax]
mov rcx, qword [rdi + 8]
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], r13w
jne 0x180013490
mov rdx, qword [rdi]
mov rcx, 0xffffffffffffffff
inc rcx
cmp word [rdx + rcx*2], r13w
jne 0x1800134a4
add rax, rcx
add rdi, 0x38
lea rax, [rax*2 + 4]
shr rax, 1
add eax, r12d
add esi, eax
sub r8, 1
jne 0x180013480
bt r9d, 0x11
jae 0x1800134fb
mov r8d, esi
lea rdx, str.___2__pcbBytesNeeded:__d__n
lea rcx, [0x180046090]
call qword [0x1800477f0]
lea rcx, [0x180046090]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov r11d, dword [rsp + 0x30]
mov rcx, qword [rsp + 0xd8]
test rcx, rcx
je 0x18001350b
add dword [rcx], r14d
mov rax, qword [rsp + 0xd0]
mov r14, qword [rsp + 0xc8]
mov dword [rax], ebp
mov dword [r14], esi
test ebp, ebp
jne 0x180013557
cmp dword [rsp + 0x34], 0xea
je 0x180013557
mov ecx, 0x424
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov r15, qword [rsp + 0x58]
add rsp, 0x70
pop r14
pop r13
pop r12
pop rdi
pop rbx
ret
mov rbx, qword [rsp + 0xb8]
mov esi, r13d
imul ebp, r12d
mov rdi, rbx
mov r10d, ebp
mov ebp, dword [rsp + 0x38]
add r10, rbx
mov r9, r10
cmp ebp, r11d
jae 0x180013797
mov r14d, dword [rsp + 0xc0]
nop word [rax + rax]
mov rcx, qword [r15 + 8]
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], r13w
jne 0x1800135a0
mov rcx, qword [r15]
mov rdx, 0xffffffffffffffff
inc rdx
cmp word [rcx + rdx*2], r13w
jne 0x1800135b4
mov r8d, dword [rsp + 0xe0]
test r8d, r8d
je 0x1800135d6
add eax, 2
add eax, edx
lea eax, [r12 + rax*2]
jmp 0x1800135e7
add rax, rdx
lea rax, [rax*2 + 4]
shr rax, 1
add eax, r12d
add esi, eax
cmp esi, r14d
ja 0x180013787
test r8d, r8d
je 0x18001368b
mov rdx, r10
sub rdx, rcx
nop dword [rax]
nop word [rax + rax]
movzx eax, word [rcx]
mov word [rcx + rdx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x180013610
mov qword [rbx], r10
mov rax, 0xffffffffffffffff
mov rcx, qword [r15]
nop dword [rax]
cmp word [rcx + rax*2 + 2], r13w
lea rax, [rax + 1]
jne 0x180013630
mov rdx, qword [r15 + 8]
lea rcx, [rax + 1]
lea rcx, [r10 + rcx*2]
mov r8, rcx
nop dword [rax + rax]
movzx eax, word [rdx]
lea rdx, [rdx + 2]
mov word [rcx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x180013650
mov qword [rbx + 8], r8
mov rax, 0xffffffffffffffff
mov rcx, qword [r15 + 8]
cmp word [rcx + rax*2 + 2], r13w
lea rax, [rax + 1]
jne 0x180013672
lea r10, [rax + 1]
lea r10, [r8 + r10*2]
jmp 0x180013733
movzx r8d, word [rcx]
mov rdx, r13
test r8w, r8w
je 0x1800136b4
nop dword [rax + rax]
mov byte [rdx + r9], r8b
inc rdx
movzx eax, word [rcx + rdx*2]
movzx r8d, al
test ax, ax
jne 0x1800136a0
mov byte [rdx + r9], r13b
mov rax, 0xffffffffffffffff
mov qword [rbx], r9
mov rcx, qword [r15]
inc rax
cmp word [rcx + rax*2], r13w
jne 0x1800136c5
lea rdx, [r9 + 1]
mov rcx, r13
mov r9, qword [r15 + 8]
add rdx, rax
movzx r8d, word [r9]
test r8w, r8w
je 0x180013705
nop word [rax + rax]
mov byte [rcx + rdx], r8b
inc rcx
movzx eax, word [r9 + rcx*2]
movzx r8d, al
test ax, ax
jne 0x1800136f0
mov byte [rcx + rdx], r13b
mov rax, 0xffffffffffffffff
mov qword [rbx + 8], rdx
mov rcx, qword [r15 + 8]
nop dword [rax + rax]
cmp word [rcx + rax*2 + 2], r13w
lea rax, [rax + 1]
jne 0x180013720
lea r9, [rax + 1]
add r9, rdx
movups xmm0, xmmword [r15 + 0x10]
cmp dword [rsp + 0xe8], r13d
je 0x180013758
movups xmmword [rdi + 0x10], xmm0
movups xmm1, xmmword [r15 + 0x20]
movups xmmword [rdi + 0x20], xmm1
mov eax, dword [r15 + 0x30]
mov dword [rdi + 0x30], eax
jmp 0x18001376e
movups xmmword [rbx + 0x10], xmm0
movsd xmm1, qword [r15 + 0x20]
movsd qword [rbx + 0x20], xmm1
mov eax, dword [r15 + 0x28]
mov dword [rbx + 0x28], eax
mov eax, r12d
add r15, 0x38
add rbx, rax
add rdi, rax
inc ebp
cmp ebp, dword [rsp + 0x30]
jb 0x180013590
mov r14, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xd8]
mov ebx, dword [rsp + 0x34]
test ebx, ebx
jne 0x1800137aa
mov dword [r14], r13d
test rcx, rcx
je 0x1800137aa
mov dword [rcx], r13d
mov rcx, qword [rsp + 0x40]
call fcn.180025488
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
test ebx, ebx
sete r13b
mov eax, r13d
jmp 0x18001353b
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, 1
add rsp, 0x70
pop r14
pop r13
pop r12
pop rdi
pop rbx
ret