Function at 0x180021d30
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1f0
mov rax, qword [0x18007b358]
xor rax, rsp
mov qword [rsp + 0x1e0], rax
lea esi, [r8 - 0xd]
mov qword [rsp + 0xc8], r9
mov qword [rsp + 0xc0], rdx
mov ebx, r8d
mov dword [rsp + 0x98], ebx
mov rdi, r9
mov qword [rsp + 0xd8], rcx
mov rbp, rdx
mov dword [rsp + 0x90], esi
mov r14, rcx
cmp r8d, esi
jbe case.0x180021deb.0
mov r13d, dword [rsp + 0xa8]
lea esi, [r8 - 0x44]
mov r15, qword [rsp + 0xc8]
lea rdx, [0x180000000]
movzx r12d, byte [rsp + 0xb0]
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0xa0], esi
nop word [rax + rax]
cmp esi, 0x2b
ja case.default.0x180021deb
movzx eax, byte [rdx + rsi + 0x222c8]
mov ecx, dword [rdx + rax*4 + 0x22298]
add rcx, rdx
jmp rcx
mov qword [rsp + 0x28], 0
lea r8, [0x180021d00]
mov r9, rdi
mov dword [rsp + 0x20], 0
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rdi], rax
test rax, rax
je case.0x180021f2d.0
lea rdx, [0x180000000]
jmp case.0x180021deb.11
lea r9, [rsp + 0xa0]
mov dword [rsp + 0xa0], 1
xor r8d, r8d
mov dword [rsp + 0x20], 0x10e
xor edx, edx
mov rcx, rdi
call fcn.18001f210
lea rdx, [0x180000000]
jmp case.0x180021deb.11
xor r9d, r9d
mov qword [rsp + 0x20], rdi
xor edx, edx
xor ecx, ecx
lea r8d, [r9 + 0x7f]
call fcn.180011e40
test al, al
je 0x180021e1e
mov ebx, 0x4e
nop dword [rax]
mov eax, ebx
sub eax, 0x4e
je 0x180021e92
cmp eax, 1
je case.0x180021deb.0
jmp 0x180021ecb
xor r9d, r9d
mov qword [rsp + 0x20], rdi
xor edx, edx
xor ecx, ecx
mov r8d, 0x82
call fcn.18000a8b0
test al, al
je case.0x180021f2d.0
mov rdx, qword [r14]
xor r9d, r9d
mov r8d, 0x8d
xor ecx, ecx
call fcn.180024bc0
mov byte [rsp + 0x94], al
inc ebx
cmp ebx, 0x50
jb 0x180021e80
mov ebx, dword [rsp + 0x98]
lea rdx, [0x180000000]
jmp case.0x180021deb.11
movzx eax, byte [0x18007bcf1]
mov byte [rsp + 0x94], al
jmp case.0x180021deb.11
xor edx, edx
mov ecx, 0x114
call fcn.18004c2b0
test al, al
jne 0x180021fd8
mov ebx, 5
cmp ebx, 5
ja case.default.0x180021f2d
lea rdx, [0x180000000]
mov eax, ebx
mov ecx, dword [rdx + rax*4 + 0x222f4]
add rcx, rdx
jmp rcx
mov r13d, 0xa
mov dword [rsp + 0xb4], 0x14
jmp case.default.0x180021f2d
xor ecx, ecx
movzx eax, r12b
test r15, r15
cmovne ecx, eax
movzx r12d, cl
test cl, cl
je case.default.0x180021f2d
mov rdx, qword [rsp + 0xd0]
mov rcx, r15
call qword [sym.imp.GDI32.dll_EqualRgn]
mov rcx, r15
call qword [sym.imp.GDI32.dll_DeleteObject]
jmp case.default.0x180021f2d
mov r9d, dword [rsp + 0xbc]
mov ecx, r13d
mov r8d, dword [rsp + 0xb8]
mov edx, dword [rsp + 0xb4]
mov qword [rsp + 0xd0], 0
call qword [sym.imp.GDI32.dll_CreateRectRgn]
mov r15, rax
jmp case.default.0x180021f2d
mov r12b, 1
jmp case.default.0x180021f2d
mov dword [rsp + 0xb8], 0x28
mov dword [rsp + 0xbc], 0x32
dec ebx
lea eax, [rbx + 0x104]
cmp eax, 0x103
ja 0x180021f11
mov ebx, dword [rsp + 0x98]
xor eax, eax
mov r9, rdi
mov qword [rsp + 0x30], rax
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov edx, 0x129
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.180019100
mov byte [rsp + 0x94], al
lea rdx, [0x180000000]
jmp case.0x180021deb.11
mov eax, dword [rsp + 0xa8]
add eax, 0xfffffff3
cmp eax, 1
jbe 0x180022066
mov ebx, 0xa2
mov eax, ebx
sub eax, 0xa2
je 0x180022048
sub eax, 0x30
je 0x18002203b
cmp eax, 0x30
je case.0x180021deb.0
jmp 0x180022054
mov dword [rsp + 0x94], 0
jmp 0x180022054
lea rcx, str.ATL.CHandle.dtor
call fcn.180068ee0
add ebx, 0x30
cmp ebx, 0x132
jb 0x180022022
mov ebx, dword [rsp + 0x98]
lea rcx, [rsp + 0xe0]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], 0
jne 0x180022075
mov r9, rbp
mov dword [rsp + 0xa0], eax
mov r8d, 0x102
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0xa0]
call fcn.18002e0b0
test eax, eax
je 0x180021e1e
mov ebx, 0xb5
mov eax, ebx
sub eax, 0xb5
je 0x1800220c5
cmp eax, 0x45
jne 0x1800220d1
xor eax, eax
jmp 0x18002226b
lea rcx, str.Illegal_empty_structure
call fcn.180068ee0
add ebx, 0x45
cmp ebx, 0x13f
jb 0x1800220b0
mov ebx, dword [rsp + 0x98]
lea rdx, [0x180000000]
jmp case.0x180021deb.11
mov eax, dword [rbp]
cmp eax, 0x5a
jge 0x1800220fd
add eax, 0x64
mov dword [rbp], eax
dec dword [rbp + 4]
jmp case.0x180021deb.11
xorps xmm0, xmm0
mov dword [rsp + 0x28], 0x8a
movups xmmword [rbp], xmm0
xor r9d, r9d
mov r8, rdi
movups xmmword [rbp + 0x10], xmm0
xor edx, edx
lea rcx, [rsp + 0xa8]
movups xmmword [rbp + 0x20], xmm0
mov qword [rsp + 0x20], 0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
mov eax, dword [r14]
mov dword [rsp + 0xa8], eax
call fcn.18004d280
mov r14, qword [rsp + 0xc0]
lea rdx, [rbp + 0x50]
lea rax, [rbp + 0x59]
add r14, 0x1c
mov qword [rsp + 0x80], rax
lea rcx, [rbp + 0x58]
mov rax, qword [rsp + 0xc0]
lea r8, [rbp + 4]
mov qword [rsp + 0x78], rcx
lea r9, [rbp + 8]
mov qword [rsp + 0x70], rdx
lea r10, [rbp + 0x48]
mov qword [rsp + 0x68], rax
lea r11, [rbp + 0x40]
mov qword [rsp + 0x60], r8
lea rdi, [rbp + 0x30]
mov qword [rsp + 0x58], r9
lea rbx, [rbp + 0x38]
mov qword [rsp + 0x50], r10
lea rsi, [rbp + 0x28]
mov qword [rsp + 0x48], r11
lea r9, [rsp + 0xe0]
mov qword [rsp + 0x40], rbx
lea r8, str.vim.event.VmVnicPoolReservationViolationRaiseEvent
mov qword [rsp + 0x38], rdi
add rbp, 0x20
mov rdi, qword [rsp + 0xc8]
mov qword [rsp + 0x30], rsi
mov rcx, rdi
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], r14
mov r14, qword [rsp + 0xd8]
mov edx, dword [r14]
call fcn.180069050
mov ebx, dword [rsp + 0x98]
lea rdx, [0x180000000]
mov esi, dword [rsp + 0xa0]
mov rbp, qword [rsp + 0xc0]
mov dword [rsp + 0xa8], eax
jmp case.0x180021deb.11
mov dword [rsp + 0x94], 1
mov eax, dword [rsp + 0x90]
dec ebx
dec esi
mov dword [rsp + 0x98], ebx
mov dword [rsp + 0xa0], esi
cmp ebx, eax
ja 0x180021dd0
jmp case.0x180021deb.0
mov byte [rsp + 0x94], 0
jmp case.0x180021deb.0
mov byte [rsp + 0x94], 1
mov eax, dword [rsp + 0x94]
mov rcx, qword [rsp + 0x1e0]
xor rcx, rsp
call fcn.180069d20
mov rbx, qword [rsp + 0x240]
add rsp, 0x1f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret