Function at 0x1000d63ac
Capabilities:
Create thread

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x80
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rax, qword [0x100151198]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov r12, r8
mov rbx, rdx
mov rsi, rcx
lea r15, [0x100152eb8]
mov eax, 5
lea r14, [0x10001dca8]
mov rcx, qword [0x100152eb8]
cmp rcx, r15
je 0x1000d641b
test byte [rcx + 0x1c], 1
je 0x1000d641b
cmp byte [rcx + 0x19], al
jb 0x1000d641b
lea edx, [rax + 0xd]
mov r9, rbx
mov r8, r14
mov rcx, qword [rcx + 0x10]
call fcn.100034814
cmp qword [rsi + 0x60], rbx
je 0x1000d6442
test rbx, rbx
je 0x1000d642f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov rcx, qword [rsi + 0x60]
test rcx, rcx
je 0x1000d643e
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rsi + 0x60], rbx
lea rcx, [rsi + 0x68]
call sub.wmpmde.dll_MFCreateNetVRoot
mov ebx, eax
mov edi, 2
mov rax, qword [0x100152eb8]
cmp rax, r15
je 0x1000d648a
test byte [rax + 0x1c], dil
je 0x1000d648a
movzx edx, byte [rax + 0x19]
mov ecx, edi
test ebx, ebx
lea r8d, [rdi + 3]
cmovns ecx, r8d
cmp edx, ecx
jl 0x1000d648a
lea edx, [rdi + 0x11]
mov r9d, ebx
mov r8, r14
mov rcx, qword [rax + 0x10]
call fcn.100036328
mov r15d, 0xc00d3813
mov dword [r12], r15d
test ebx, ebx
js 0x1000d6817
and qword [rsp + 0x30], 0
mov rcx, qword [rsi + 0x68]
mov rax, qword [rcx]
lea r8, [rsp + 0x30]
lea rdx, [0x100001f80]
call qword [rax]
mov ebx, eax
mov r10, qword [0x100152eb8]
lea rax, [0x100152eb8]
cmp r10, rax
je 0x1000d64fb
test byte [r10 + 0x1c], dil
je 0x1000d64fb
movzx ecx, byte [r10 + 0x19]
mov eax, edi
test ebx, ebx
mov edx, 5
cmovns eax, edx
cmp ecx, eax
jl 0x1000d64fb
mov edx, 0x14
mov r9d, ebx
mov r8, r14
mov rcx, qword [r10 + 0x10]
call fcn.100036328
mov dword [r12], r15d
test ebx, ebx
js 0x1000d659e
movdqu xmm0, xmmword [0x10002ecd8]
movdqu xmmword [rsp + 0x58], xmm0
and dword [rsp + 0x68], 0
xor eax, eax
mov qword [rsp + 0x3a], rax
mov qword [rsp + 0x42], rax
mov dword [rsp + 0x4a], eax
mov word [rsp + 0x4e], ax
mov eax, 0xb
mov word [rsp + 0x38], ax
or eax, 0xffffffff
mov word [rsp + 0x40], ax
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x58]
call qword [rax + 0x30]
mov ebx, eax
mov r10, qword [0x100152eb8]
lea rax, [0x100152eb8]
cmp r10, rax
je 0x1000d659a
test byte [r10 + 0x1c], dil
je 0x1000d659a
movzx ecx, byte [r10 + 0x19]
mov eax, edi
test ebx, ebx
mov edx, 5
cmovns eax, edx
cmp ecx, eax
jl 0x1000d659a
mov edx, 0x15
mov r9d, ebx
mov r8, r14
mov rcx, qword [r10 + 0x10]
call fcn.100036328
mov dword [r12], r15d
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1000d65ae
mov rax, qword [rcx]
call qword [rax + 0x10]
test ebx, ebx
js 0x1000d6817
mov rcx, qword [rsi + 0x68]
mov rax, qword [rcx]
lea r8, [rsi + 0x40]
mov edx, 0x252f
call qword [rax + 0x18]
mov ebx, eax
mov r10, qword [0x100152eb8]
lea rax, [0x100152eb8]
cmp r10, rax
je 0x1000d660d
test byte [r10 + 0x1c], dil
je 0x1000d660d
movzx ecx, byte [r10 + 0x19]
mov eax, edi
test ebx, ebx
mov edx, 5
cmovns eax, edx
cmp ecx, eax
jl 0x1000d660d
mov edx, 0x16
mov r9d, ebx
mov r8, r14
mov rcx, qword [r10 + 0x10]
call fcn.100036328
mov r15d, 0xc00d3814
mov dword [r12], r15d
test ebx, ebx
js 0x1000d6817
mov rcx, qword [rsi + 0x68]
mov rax, qword [rcx]
lea r8, [rsi + 0x48]
mov edx, 0x2531
call qword [rax + 0x18]
mov ebx, eax
mov r10, qword [0x100152eb8]
lea rax, [0x100152eb8]
cmp r10, rax
je 0x1000d6676
test byte [r10 + 0x1c], dil
je 0x1000d6676
movzx ecx, byte [r10 + 0x19]
mov eax, edi
test ebx, ebx
mov edx, 5
cmovns eax, edx
cmp ecx, eax
jl 0x1000d6676
mov edx, 0x17
mov r9d, ebx
mov r8, r14
mov rcx, qword [r10 + 0x10]
call fcn.100036328
mov dword [r12], r15d
test ebx, ebx
js 0x1000d6817
mov rcx, qword [rsi + 0x68]
mov rax, qword [rcx]
lea r8, [rsi + 0x50]
mov edx, 0x253b
call qword [rax + 0x18]
mov ebx, eax
mov r10, qword [0x100152eb8]
lea rax, [0x100152eb8]
cmp r10, rax
je 0x1000d66d9
test byte [r10 + 0x1c], dil
je 0x1000d66d9
movzx ecx, byte [r10 + 0x19]
mov eax, edi
test ebx, ebx
mov edx, 5
cmovns eax, edx
cmp ecx, eax
jl 0x1000d66d9
mov edx, 0x18
mov r9d, ebx
mov r8, r14
mov rcx, qword [r10 + 0x10]
call fcn.100036328
mov dword [r12], r15d
test ebx, ebx
js 0x1000d6817
lea rdx, [0x100025d90]
lea rcx, [rsi + 0x78]
call fcn.100039d9c
mov r15b, 4
mov rcx, qword [0x100152eb8]
lea rax, [0x100152eb8]
cmp rcx, rax
je 0x1000d672c
test byte [rcx + 0x1c], dil
je 0x1000d672c
cmp byte [rcx + 0x19], r15b
jb 0x1000d672c
mov edx, 0x19
mov r9, qword [rsi + 0x78]
mov r8, r14
mov rcx, qword [rcx + 0x10]
call fcn.100034788
mov rcx, rsi
call fcn.1000d93f8
mov rcx, qword [0x100152eb8]
lea rbp, [0x100152eb8]
cmp rcx, rbp
je 0x1000d6764
test byte [rcx + 0x1c], dil
je 0x1000d6764
cmp byte [rcx + 0x19], r15b
jb 0x1000d6764
mov edx, 0x1a
mov r8, r14
mov rcx, qword [rcx + 0x10]
call fcn.100034764
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
mov rcx, qword [0x100152eb8]
cmp rcx, rbp
je 0x1000d6796
test byte [rcx + 0x1c], dil
je 0x1000d6796
cmp byte [rcx + 0x19], r15b
jb 0x1000d6796
mov edx, 0x1b
mov r8, r14
mov rcx, qword [rcx + 0x10]
call fcn.100034764
lea rax, [rsi + 0x100]
mov qword [rsp + 0x28], rax
and dword [rsp + 0x20], 0
mov r9, rsi
lea r8, [0x1000d9bc0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rsi + 0xf8], rax
test rax, rax
jne 0x1000d6817
mov rax, qword [0x100152eb8]
cmp rax, rbp
je 0x1000d680e
test byte [rax + 0x1c], dil
je 0x1000d680e
cmp byte [rax + 0x19], dil
jb 0x1000d680e
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx r9d, ax
or r9d, 0x80070000
test eax, eax
cmovle r9d, eax
mov edx, 0x1c
mov r8, r14
mov rcx, qword [0x100152eb8]
mov rcx, qword [rcx + 0x10]
call fcn.100036328
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x10]
mov rcx, qword [0x100152eb8]
lea rax, [0x100152eb8]
cmp rcx, rax
je 0x1000d685e
test byte [rcx + 0x1c], 1
je 0x1000d685e
movzx eax, byte [rcx + 0x19]
test ebx, ebx
mov edx, 5
cmovns edi, edx
cmp eax, edi
jl 0x1000d685e
mov edx, 0x1d
mov eax, dword [r12]
mov dword [rsp + 0x20], eax
mov r9d, ebx
mov r8, r14
mov rcx, qword [rcx + 0x10]
call fcn.10003b338
mov eax, ebx
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.10011b980
add rsp, 0x80
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret