Function at 0x180007820
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 [0x180054038]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov rdi, r8
mov rsi, rcx
cmp edx, 1
jne 0x180007a6e
mov ecx, 0xd0
call fcn.18001ace8
mov rbx, rax
mov qword [rsp + 0x30], rax
xor edx, edx
mov r8d, 0xd0
mov rcx, rax
call fcn.18001d780
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.180015870
nop
mov qword [0x180056768], rax
mov rcx, rax
call fcn.180016060
mov rcx, qword [0x180056768]
mov rax, qword [rcx]
mov r8d, 2
lea rdx, str.Scenario_Initialized
call qword [rax + 0x10]
mov rcx, qword [0x180056768]
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 [0x180056768]
mov rax, qword [rcx]
movzx r8d, byte [rcx + 0x2a]
lea rdx, str.Is_Dll_Reflective:__d
call qword [rax + 0x18]
mov rcx, qword [0x180056768]
mov rax, qword [rcx]
movzx r8d, byte [rcx + 0x2d]
lea rdx, str.Is_Dll_Packed:__d
call qword [rax + 0x18]
mov rcx, qword [0x180056768]
mov rax, qword [rcx]
mov r8, rsi
lea rdx, str.Module_base:__lx
call qword [rax + 0x18]
mov rcx, qword [0x180056768]
mov rax, qword [rcx]
mov r8, qword [rcx + 0x10]
lea rdx, str.Allocated_base_address:__lx
call qword [rax + 0x18]
mov rsi, qword [0x180056768]
xor ebx, ebx
mov rcx, rsi
call fcn.180016c00
lea ecx, [rbx + 0x20]
call fcn.18001ace8
mov r14, rax
mov dword [rax + 9], ebx
mov word [rax + 0xd], bx
mov byte [rax + 0xf], bl
mov qword [rax], rsi
lea rax, [0x180005c30]
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, [0x180015820]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rbp, rax
test rax, rax
je 0x1800079b5
lea rcx, [rsi + 0xa0]
mov rdx, qword [rcx + 8]
cmp rdx, qword [rcx + 0x10]
je 0x1800079a9
mov eax, dword [rsp + 0x30]
mov dword [rdx], eax
add qword [rcx + 8], 4
jmp 0x1800079ca
lea r8, [rsp + 0x30]
call fcn.180017010
jmp 0x1800079ca
mov edx, 0x20
mov rcx, r14
call fcn.18001ace0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, rsi
call fcn.180016c90
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, qword [0x180056768]
cmp byte [rcx + 0x2c], 0
je 0x180007a6e
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 0x180007a3a
cmp r9d, 4
je 0x180007a28
cmp r9d, 0x40
jne 0x180007a3a
mov qword [rdi], rbp
mov r8d, 2
lea rdx, str.PayloadMain_thread_saved_successfully
jmp 0x180007a61
mov rcx, qword [0x180056768]
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 [0x180056768]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov eax, 1
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.18001acc0
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret