Function at 0x2166b8ae0
Capabilities:
Link many functions at runtime

Disassembly:
push r13
push r12
push rbx
sub rsp, 0x20
lea rcx, [0x2167e1f30]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x2167e7e20], rax
mov r12, rax
test rax, rax
je 0x2166b8e70
lea r13, str.VirtualAlloc
mov rbx, qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
mov rdx, r13
call rbx
test rax, rax
je 0x2166b8d70
mov r12, qword [0x2167e7e20]
lea r13, str.HeapCreate
mov qword [0x2167e7638], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8e60
mov r12, qword [0x2167e7e20]
lea r13, str.HeapAlloc
mov qword [0x2167e7630], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8e50
mov r12, qword [0x2167e7e20]
lea r13, str.GetCurrentThread
mov qword [0x2167e7628], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8e40
mov r12, qword [0x2167e7e20]
lea r13, str.GetThreadContext
mov qword [0x2167e7620], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8e30
mov r12, qword [0x2167e7e20]
lea r13, str.AddVectoredExceptionHandler
mov qword [0x2167e7618], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8e20
mov r12, qword [0x2167e7e20]
lea r13, str.RaiseException
mov qword [0x2167e7610], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8e10
mov r12, qword [0x2167e7e20]
lea r13, str.RemoveVectoredExceptionHandler
mov qword [0x2167e7608], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8e00
mov r12, qword [0x2167e7e20]
lea r13, str.CreateThread
mov qword [0x2167e7600], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8df0
mov r12, qword [0x2167e7e20]
lea r13, str.GetProcessHeap
mov qword [0x2167e75f8], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8de0
mov r12, qword [0x2167e7e20]
lea r13, str.InitializeProcThreadAttributeList
mov qword [0x2167e75f0], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8dd0
mov r12, qword [0x2167e7e20]
lea r13, str.UpdateProcThreadAttribute
mov qword [0x2167e75e8], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8dc0
mov r12, qword [0x2167e7e20]
lea r13, str.CreateProcessW
mov qword [0x2167e75e0], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8db0
mov r12, qword [0x2167e7e20]
lea r13, str.WaitForSingleObject
mov qword [0x2167e75d8], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8da0
mov r12, qword [0x2167e7e20]
lea r13, str.LoadLibraryA
mov qword [0x2167e75d0], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8d90
mov r12, qword [0x2167e7e20]
lea r13, str.GetProcAddress
mov qword [0x2167e75c8], rax
mov rdx, r13
mov rcx, r12
call rbx
test rax, rax
je 0x2166b8d80
mov qword [0x2167e75c0], rax
add rsp, 0x20
pop rbx
pop r12
pop r13
ret
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8b28
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8d5a
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8d38
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8d16
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8cf0
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8cca
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8ca4
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8c7e
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8c58
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8c32
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8c0c
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8be6
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8bc0
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8b9a
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8b74
mov rdx, r13
mov rcx, r12
call fcn.2166b8100
jmp 0x2166b8b4e
lea rcx, [0x2167e1f00]
call fcn.2166b3e50
nop
nop dword [rax]
push rbx
sub rsp, 0x30
mov qword [rsp + 0x28], rcx
mov rax, qword [rsp + 0x28]
mov rbx, rdx
test rax, rax
je 0x2166b8ecc
test rdx, rdx
jle 0x2166b8ecc
mov r8, rdx
xor edx, edx
call sub.msvcrt.dll_memset
nop word cs:[rax + rax]
mov rax, qword [rsp + 0x28]
mov byte [rax], 0
mov rax, qword [rsp + 0x28]
add rax, 1
mov qword [rsp + 0x28], rax
sub rbx, 1
jne 0x2166b8eb0
add rsp, 0x30
pop rbx
ret