Function at 0x1000d681c
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 [0x100152198]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov r12, r8
mov rbx, rdx
mov rsi, rcx
lea r15, [0x100153eb8]
mov eax, 5
lea r14, [0x10001dca8]
mov rcx, qword [0x100153eb8]
cmp rcx, r15
je 0x1000d688b
test byte [rcx + 0x1c], 1
je 0x1000d688b
cmp byte [rcx + 0x19], al
jb 0x1000d688b
lea edx, [rax + 0xd]
mov r9, rbx
mov r8, r14
mov rcx, qword [rcx + 0x10]
call fcn.100034834
cmp qword [rsi + 0x60], rbx
je 0x1000d68b2
test rbx, rbx
je 0x1000d689f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov rcx, qword [rsi + 0x60]
test rcx, rcx
je 0x1000d68ae
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 [0x100153eb8]
cmp rax, r15
je 0x1000d68fa
test byte [rax + 0x1c], dil
je 0x1000d68fa
movzx edx, byte [rax + 0x19]
mov ecx, edi
test ebx, ebx
lea r8d, [rdi + 3]
cmovns ecx, r8d
cmp edx, ecx
jl 0x1000d68fa
lea edx, [rdi + 0x11]
mov r9d, ebx
mov r8, r14
mov rcx, qword [rax + 0x10]
call fcn.100036510
mov r15d, 0xc00d3813
mov dword [r12], r15d
test ebx, ebx
js 0x1000d6c87
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 [0x100153eb8]
lea rax, [0x100153eb8]
cmp r10, rax
je 0x1000d696b
test byte [r10 + 0x1c], dil
je 0x1000d696b
movzx ecx, byte [r10 + 0x19]
mov eax, edi
test ebx, ebx
mov edx, 5
cmovns eax, edx
cmp ecx, eax
jl 0x1000d696b
mov edx, 0x14
mov r9d, ebx
mov r8, r14
mov rcx, qword [r10 + 0x10]
call fcn.100036510
mov dword [r12], r15d
test ebx, ebx
js 0x1000d6a0e
movdqu xmm0, xmmword [0x10002ece8]
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 [0x100153eb8]
lea rax, [0x100153eb8]
cmp r10, rax
je 0x1000d6a0a
test byte [r10 + 0x1c], dil
je 0x1000d6a0a
movzx ecx, byte [r10 + 0x19]
mov eax, edi
test ebx, ebx
mov edx, 5
cmovns eax, edx
cmp ecx, eax
jl 0x1000d6a0a
mov edx, 0x15
mov r9d, ebx
mov r8, r14
mov rcx, qword [r10 + 0x10]
call fcn.100036510
mov dword [r12], r15d
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1000d6a1e
mov rax, qword [rcx]
call qword [rax + 0x10]
test ebx, ebx
js 0x1000d6c87
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 [0x100153eb8]
lea rax, [0x100153eb8]
cmp r10, rax
je 0x1000d6a7d
test byte [r10 + 0x1c], dil
je 0x1000d6a7d
movzx ecx, byte [r10 + 0x19]
mov eax, edi
test ebx, ebx
mov edx, 5
cmovns eax, edx
cmp ecx, eax
jl 0x1000d6a7d
mov edx, 0x16
mov r9d, ebx
mov r8, r14
mov rcx, qword [r10 + 0x10]
call fcn.100036510
mov r15d, 0xc00d3814
mov dword [r12], r15d
test ebx, ebx
js 0x1000d6c87
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 [0x100153eb8]
lea rax, [0x100153eb8]
cmp r10, rax
je 0x1000d6ae6
test byte [r10 + 0x1c], dil
je 0x1000d6ae6
movzx ecx, byte [r10 + 0x19]
mov eax, edi
test ebx, ebx
mov edx, 5
cmovns eax, edx
cmp ecx, eax
jl 0x1000d6ae6
mov edx, 0x17
mov r9d, ebx
mov r8, r14
mov rcx, qword [r10 + 0x10]
call fcn.100036510
mov dword [r12], r15d
test ebx, ebx
js 0x1000d6c87
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 [0x100153eb8]
lea rax, [0x100153eb8]
cmp r10, rax
je 0x1000d6b49
test byte [r10 + 0x1c], dil
je 0x1000d6b49
movzx ecx, byte [r10 + 0x19]
mov eax, edi
test ebx, ebx
mov edx, 5
cmovns eax, edx
cmp ecx, eax
jl 0x1000d6b49
mov edx, 0x18
mov r9d, ebx
mov r8, r14
mov rcx, qword [r10 + 0x10]
call fcn.100036510
mov dword [r12], r15d
test ebx, ebx
js 0x1000d6c87
lea rdx, [0x100025da0]
lea rcx, [rsi + 0x78]
call fcn.100039dd4
mov r15b, 4
mov rcx, qword [0x100153eb8]
lea rax, [0x100153eb8]
cmp rcx, rax
je 0x1000d6b9c
test byte [rcx + 0x1c], dil
je 0x1000d6b9c
cmp byte [rcx + 0x19], r15b
jb 0x1000d6b9c
mov edx, 0x19
mov r9, qword [rsi + 0x78]
mov r8, r14
mov rcx, qword [rcx + 0x10]
call fcn.1000347a8
mov rcx, rsi
call fcn.1000d9868
mov rcx, qword [0x100153eb8]
lea rbp, [0x100153eb8]
cmp rcx, rbp
je 0x1000d6bd4
test byte [rcx + 0x1c], dil
je 0x1000d6bd4
cmp byte [rcx + 0x19], r15b
jb 0x1000d6bd4
mov edx, 0x1a
mov r8, r14
mov rcx, qword [rcx + 0x10]
call fcn.100034784
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
mov rcx, qword [0x100153eb8]
cmp rcx, rbp
je 0x1000d6c06
test byte [rcx + 0x1c], dil
je 0x1000d6c06
cmp byte [rcx + 0x19], r15b
jb 0x1000d6c06
mov edx, 0x1b
mov r8, r14
mov rcx, qword [rcx + 0x10]
call fcn.100034784
lea rax, [rsi + 0x100]
mov qword [rsp + 0x28], rax
and dword [rsp + 0x20], 0
mov r9, rsi
lea r8, [0x1000da030]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rsi + 0xf8], rax
test rax, rax
jne 0x1000d6c87
mov rax, qword [0x100153eb8]
cmp rax, rbp
je 0x1000d6c7e
test byte [rax + 0x1c], dil
je 0x1000d6c7e
cmp byte [rax + 0x19], dil
jb 0x1000d6c7e
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 [0x100153eb8]
mov rcx, qword [rcx + 0x10]
call fcn.100036510
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x10]
mov rcx, qword [0x100153eb8]
lea rax, [0x100153eb8]
cmp rcx, rax
je 0x1000d6cce
test byte [rcx + 0x1c], 1
je 0x1000d6cce
movzx eax, byte [rcx + 0x19]
test ebx, ebx
mov edx, 5
cmovns edi, edx
cmp eax, edi
jl 0x1000d6cce
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.10003be4c
mov eax, ebx
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.10011be80
add rsp, 0x80
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret