Function at 0x140018faa
Capabilities:
Create thread

Disassembly:
jmp 0x14003fb90
push rbp
push rdi
mov eax, 0x21f8
call fcn.1400183e8
sub rsp, rax
lea rbp, [rsp + 0x30]
lea rdi, [rsp + 0x30]
mov ecx, 0x6f2
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rax, qword [0x140061480]
xor rax, rbp
mov qword [rbp + 0x21b8], rax
lea rcx, [0x14006f11e]
call fcn.1400196f3
nop
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov qword [rbp + 8], rax
cmp qword [rbp + 8], 0
jne 0x14003fc14
lea rdx, str.Failed_to_get_kernel32.dll_handle
lea rcx, [rbp + 0x1fc8]
call fcn.1400193d3
nop
lea rdx, [0x14005fd88]
lea rcx, [rbp + 0x1fc8]
call fcn.140019928
nop
movabs rax, 0xfa55e32c9d72a921
mov qword [rbp + 0x28], rax
movabs rax, 0xed1006223abbbd53
mov qword [rbp + 0x48], rax
movabs rax, 0xae4c67fede0db8b2
mov qword [rbp + 0x68], rax
lea rdx, str.VirtualAlloc
mov rcx, qword [rbp + 8]
call fcn.140018582
mov qword [rbp + 0x21a8], rax
mov rax, qword [rbp + 0x21a8]
mov qword [rbp + 0x88], rax
lea rdx, str.VirtualProtect
mov rcx, qword [rbp + 8]
call fcn.140019919
mov qword [rbp + 0x21a8], rax
mov rax, qword [rbp + 0x21a8]
mov qword [rbp + 0xa8], rax
lea rdx, str.VirtualFree
mov rcx, qword [rbp + 8]
call fcn.140018776
mov qword [rbp + 0x21a8], rax
mov rax, qword [rbp + 0x21a8]
mov qword [rbp + 0xc8], rax
cmp qword [rbp + 0x88], 0
je 0x14003fccb
cmp qword [rbp + 0xa8], 0
je 0x14003fccb
cmp qword [rbp + 0xc8], 0
jne 0x14003fcf3
lea rdx, str.Failed_to_resolve_function_addresses
lea rcx, [rbp + 0x1ff8]
call fcn.1400193d3
nop
lea rdx, [0x14005fd88]
lea rcx, [rbp + 0x1ff8]
call fcn.140019928
nop
mov edx, 0x20
lea rcx, [rbp + 0xe8]
call fcn.140018159
lea rcx, [rbp + 0x2024]
call fcn.140018af5
lea rcx, section..data
add rcx, 0x37d
mov r9, rax
mov r8, rcx
lea rdx, section..data
lea rcx, [rbp + 0xe8]
call fcn.140019941
mov qword [rbp + 0x21a8], rax
lea rcx, [rbp + 0xe8]
call fcn.14001991e
mov qword [rbp + 0x128], rax
lea rcx, [rbp + 0xe8]
call fcn.1400189a1
mov qword [rbp + 0x148], rax
mov edx, 0x158
lea rcx, [rbp + 0x170]
call fcn.140019621
mov r8, qword [rbp + 0x148]
mov rdx, qword [rbp + 0x128]
lea rcx, [rbp + 0x170]
call fcn.1400193bf
mov qword [rbp + 0x21a8], rax
lea rcx, [rbp + 0x170]
call fcn.1400197ed
mov qword [rbp + 0x21a8], rax
mov rax, qword [rbp + 0x21a8]
mov qword [rbp + 0x2e8], rax
mov edx, 0x10
lea rcx, [rbp + 0x308]
call fcn.140019644
lea rdx, [rbp + 0x170]
lea rcx, [rbp + 0x2048]
call fcn.140026f10
mov qword [rbp + 0x21a8], rax
mov r8, qword [rbp + 0x21a8]
mov edx, 1
lea rcx, [rbp + 0x308]
call fcn.140025300
mov qword [rbp + 0x21b0], rax
lea rcx, [rbp + 0x308]
call fcn.140018d07
nop
mov edx, 0x20
lea rcx, [rbp + 0x338]
call fcn.140018159
lea rcx, [rbp + 0x338]
call fcn.140018b77
mov qword [rbp + 0x21a8], rax
mov edx, 0x20
lea rcx, [rbp + 0x378]
call fcn.140018159
lea rcx, [rbp + 0x378]
call fcn.140018b77
mov qword [rbp + 0x21a8], rax
mov edx, 0x20
lea rcx, [rbp + 0x3b8]
call fcn.140018159
lea rcx, [rbp + 0x3b8]
call fcn.140018b77
mov qword [rbp + 0x21a8], rax
mov edx, 0x20
lea rcx, [rbp + 0x3f8]
call fcn.1400197fc
lea rdx, [rbp + 0x3b8]
lea rcx, [rbp + 0x3f8]
call fcn.1400193ec
mov qword [rbp + 0x21a8], rax
mov edx, 0x10
lea rcx, [rbp + 0x438]
call fcn.1400191ad
lea rdx, [rbp + 0x338]
lea rcx, [rbp + 0x438]
call fcn.140018037
mov qword [rbp + 0x21a8], rax
mov edx, 0x10
lea rcx, [rbp + 0x468]
call fcn.1400191ad
lea rdx, [rbp + 0x378]
lea rcx, [rbp + 0x468]
call fcn.140018037
mov qword [rbp + 0x21a8], rax
lea rdx, [rbp + 0xe8]
lea rcx, [rbp + 0x3f8]
call fcn.1400194d2
nop
call fcn.14001918a
nop
lea rdx, [rbp + 0xe8]
lea rcx, [rbp + 0x438]
call fcn.14001899c
nop
call fcn.14001918a
nop
lea rdx, [rbp + 0xe8]
lea rcx, [rbp + 0x468]
call fcn.14001899c
nop
call fcn.14001918a
nop
mov r9d, 4
mov r8d, 0x3000
mov rdx, qword [rbp + 0x2e8]
xor ecx, ecx
call qword [rbp + 0x88]
mov qword [rbp + 0x21a8], rax
mov rax, qword [rbp + 0x21a8]
mov qword [rbp + 0x498], rax
cmp qword [rbp + 0x498], 0
jne 0x14003ffab
lea rdx, str.Memory_allocation_failed
lea rcx, [rbp + 0x2068]
call fcn.1400193d3
nop
lea rdx, [0x14005fd88]
lea rcx, [rbp + 0x2068]
call fcn.140019928
nop
lea rcx, [rbp + 0xe8]
call fcn.14001991e
mov r8, qword [rbp + 0x2e8]
mov rdx, rax
mov rcx, qword [rbp + 0x498]
call fcn.140018b4a
nop
mov edx, 0x20
lea rcx, [rbp + 0x4b8]
call fcn.140018159
lea rcx, [rbp + 0x2094]
call fcn.140018af5
mov rcx, qword [rbp + 0x2e8]
mov rdx, qword [rbp + 0x498]
add rdx, rcx
mov rcx, rdx
mov r9, rax
mov r8, rcx
mov rdx, qword [rbp + 0x498]
lea rcx, [rbp + 0x4b8]
call fcn.140019941
mov qword [rbp + 0x21a8], rax
lea rdx, [rbp + 0x4b8]
lea rcx, [rbp + 0x468]
call fcn.14001918f
nop
call fcn.14001918a
nop
lea rdx, [rbp + 0x4b8]
lea rcx, [rbp + 0x438]
call fcn.14001918f
nop
call fcn.14001918a
nop
lea rdx, [rbp + 0x4b8]
lea rcx, [rbp + 0x3f8]
call fcn.1400194d2
nop
lea r9, [rbp + 0x4f4]
mov r8d, 4
mov rdx, qword [rbp + 0x2e8]
mov rcx, qword [rbp + 0x498]
call qword [rbp + 0xa8]
mov dword [rbp + 0x21a4], eax
cmp dword [rbp + 0x21a4], 0
jne 0x1400400d5
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rbp + 0x498]
call qword [rbp + 0xc8]
nop
lea rdx, str.Failed_to_change_memory_protection_to_writable
lea rcx, [rbp + 0x20b8]
call fcn.1400193d3
nop
lea rdx, [0x14005fd88]
lea rcx, [rbp + 0x20b8]
call fcn.140019928
nop
lea rcx, [rbp + 0x4b8]
call fcn.14001991e
mov r8, qword [rbp + 0x2e8]
mov rdx, rax
mov rcx, qword [rbp + 0x498]
call fcn.140018b4a
nop
lea r9, [rbp + 0x4f4]
mov r8d, 0x20
mov rdx, qword [rbp + 0x2e8]
mov rcx, qword [rbp + 0x498]
call qword [rbp + 0xa8]
mov dword [rbp + 0x21a4], eax
cmp dword [rbp + 0x21a4], 0
jne 0x140040166
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rbp + 0x498]
call qword [rbp + 0xc8]
nop
lea rdx, str.Failed_to_change_memory_protection_to_executable
lea rcx, [rbp + 0x20e8]
call fcn.1400193d3
nop
lea rdx, [0x14005fd88]
lea rcx, [rbp + 0x20e8]
call fcn.140019928
nop
mov dword [rbp + 0x514], 5
mov dword [rbp + 0x574], 0
jmp 0x14004018a
mov eax, dword [rbp + 0x574]
inc eax
mov dword [rbp + 0x574], eax
cmp dword [rbp + 0x574], 5
jge 0x1400401ab
movsxd rax, dword [rbp + 0x574]
mov rcx, qword [rbp + 0x498]
mov qword [rbp + rax*8 + 0x538], rcx
jmp 0x14004017c
lea rcx, [rbp + 0x594]
call fcn.140018ca8
mov dword [rbp + 0x21a4], eax
mov edx, dword [rbp + 0x21a4]
lea rcx, [rbp + 0x5c0]
call fcn.140018a14
nop
mov r8d, 4
xor edx, edx
lea rcx, [rbp + 0x1968]
call fcn.140018433
nop
lea rax, [rbp + 0x2114]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r9, [rbp + 0x538]
lea r8, [0x14001b380]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rbp + 0x1988], rax
cmp qword [rbp + 0x1988], 0
jne 0x14004025a
lea rdx, str.Failed_to_create_thread
lea rcx, [rbp + 0x2138]
call fcn.1400193d3
nop
lea rdx, [0x14005fd88]
lea rcx, [rbp + 0x2138]
call fcn.140019928
nop
mov edx, 0xffffffff
mov rcx, qword [rbp + 0x1988]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
nop
mov rcx, qword [rbp + 0x1988]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rbp + 0x498]
call qword [rbp + 0xc8]
mov dword [rbp + 0x21a4], eax
cmp dword [rbp + 0x21a4], 0
jne 0x1400402c7
lea rdx, str.Failed_to_free_memory
lea rcx, [rbp + 0x2168]
call fcn.1400193d3
nop
lea rdx, [0x14005fd88]
lea rcx, [rbp + 0x2168]
call fcn.140019928
nop
lea rcx, [rbp + 0x4b8]
call fcn.1400186bd
nop
lea rcx, [rbp + 0x468]
call fcn.1400198e2
nop
lea rcx, [rbp + 0x438]
call fcn.1400198e2
nop
lea rcx, [rbp + 0x3f8]
call fcn.1400197a7
nop
lea rcx, [rbp + 0x3b8]
call fcn.1400186bd
nop
lea rcx, [rbp + 0x378]
call fcn.1400186bd
nop
lea rcx, [rbp + 0x338]
call fcn.1400186bd
nop
lea rcx, [rbp + 0x308]
call fcn.140018532
nop
lea rcx, [rbp + 0x170]
call fcn.1400195b3
nop
lea rcx, [rbp + 0xe8]
call fcn.1400186bd
nop
jmp 0x140040353
xor eax, eax
mov rdi, rax
lea rcx, [rbp - 0x30]
lea rdx, [0x140050dd0]
call fcn.140019338
mov rax, rdi
mov rcx, qword [rbp + 0x21b8]
xor rcx, rbp
call fcn.140018b3b
lea rsp, [rbp + 0x21c8]
pop rdi
pop rbp
ret