Function at 0x180008510
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x70
mov rax, qword [0x18005f038]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov rdi, r8
mov rsi, rcx
cmp edx, 1
jne 0x18000875e
mov ecx, 0xd0
call fcn.180020be8
mov rbx, rax
mov qword [rsp + 0x30], rax
xor edx, edx
mov r8d, 0xd0
mov rcx, rax
call fcn.180023790
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.18001bb70
nop
mov qword [0x180061f28], rax
mov rcx, rax
call fcn.18001c360
mov rcx, qword [0x180061f28]
mov rax, qword [rcx]
mov r8d, 2
lea rdx, str.Scenario_Initialized
call qword [rax + 0x10]
mov rcx, qword [0x180061f28]
mov rax, qword [rcx]
movzx r8d, byte [rcx + 0x2c]
lea rdx, str.Is_Dll_Main_Thread_is_the_Executor_thread:__d
call qword [rax + 0x18]
mov rcx, qword [0x180061f28]
mov rax, qword [rcx]
movzx r8d, byte [rcx + 0x2a]
lea rdx, str.Is_Dll_Reflective:__d
call qword [rax + 0x18]
mov rcx, qword [0x180061f28]
mov rax, qword [rcx]
movzx r8d, byte [rcx + 0x2d]
lea rdx, str.Is_Dll_Packed:__d
call qword [rax + 0x18]
mov rcx, qword [0x180061f28]
mov rax, qword [rcx]
mov r8, rsi
lea rdx, str.Module_base:__lx
call qword [rax + 0x18]
mov rcx, qword [0x180061f28]
mov rax, qword [rcx]
mov r8, qword [rcx + 0x10]
lea rdx, str.Allocated_base_address:__lx
call qword [rax + 0x18]
mov rsi, qword [0x180061f28]
xor ebx, ebx
mov rcx, rsi
call fcn.18001cf90
lea ecx, [rbx + 0x20]
call fcn.180020be8
mov r14, rax
mov dword [rax + 9], ebx
mov word [rax + 0xd], bx
mov byte [rax + 0xf], bl
mov qword [rax], rsi
lea rax, [0x1800069e0]
mov qword [r14 + 0x10], rax
mov qword [r14 + 0x18], rbx
mov byte [r14 + 8], 1
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ebx
mov r9, r14
lea r8, [0x18001bb20]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rbp, rax
test rax, rax
je 0x1800086a5
lea rcx, [rsi + 0xa0]
mov rdx, qword [rcx + 8]
cmp rdx, qword [rcx + 0x10]
je 0x180008699
mov eax, dword [rsp + 0x30]
mov dword [rdx], eax
add qword [rcx + 8], 4
jmp 0x1800086ba
lea r8, [rsp + 0x30]
call fcn.18001d3a0
jmp 0x1800086ba
mov edx, 0x20
mov rcx, r14
call fcn.180020be0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, rsi
call fcn.18001d020
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, qword [0x180061f28]
cmp byte [rcx + 0x2c], 0
je 0x18000875e
mov rax, qword [rcx]
mov r8d, 2
lea rdx, str.Trying_to_save_PayloadMain_thread_handle
call qword [rax + 0x10]
mov r8d, 0x30
lea rdx, [rsp + 0x38]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
mov r9d, dword [rsp + 0x5c]
test rax, rax
je 0x18000872a
cmp r9d, 4
je 0x180008718
cmp r9d, 0x40
jne 0x18000872a
mov qword [rdi], rbp
mov r8d, 2
lea rdx, str.PayloadMain_thread_saved_successfully
jmp 0x180008751
mov rcx, qword [0x180061f28]
mov rax, qword [rcx]
mov r8d, 2
lea rdx, str.Could_not_save_it__invalid_pointer__d
call qword [rax + 0x10]
mov r8d, 4
lea rdx, str.Could_not_start_scenario
mov rcx, qword [0x180061f28]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov eax, 1
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.180020bc0
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret