Function at 0x140002930
Capabilities:
Allocate or change rwx memory
Contain obfuscated stackstrings
Create process on windows
Create process suspended
Enumerate pe sections
Link many functions at runtime
Terminate process

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x130]
sub rsp, 0x230
xor ecx, ecx
call fcn.140010624
mov rcx, rax
call fcn.14000d5f4
xor edi, edi
mov ebx, edi
call fcn.14000d5c8
inc rbx
cmp rbx, 0x64
jl 0x140002962
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], 0xf
mov byte [rsp + 0x60], 0
mov r8d, 8
lea rdx, str.main.txt
lea rcx, [rsp + 0x60]
call fcn.140001f50
nop
lea rdx, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae rdx, qword [rsp + 0x60]
mov r8d, 1
lea rcx, [rbp + 0x20]
call fcn.140004450
mov rax, qword [rbp + 0x20]
movsxd rcx, dword [rax + 4]
lea r8, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x20], r8
mov rax, qword [rbp + 0x20]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x1c], edx
mov rax, qword [rbp + 0x20]
movsxd rcx, dword [rax + 4]
mov ebx, dword [rbp + rcx + 0x30]
mov qword [rbp + rcx + 0x20], r8
mov rax, qword [rbp + 0x20]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x1c], edx
lea rcx, [rbp + 0x30]
call fcn.140003ba0
mov rax, qword [rbp + 0x20]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x20], rax
mov rax, qword [rbp + 0x20]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rbp + rcx + 0x1c], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0xd0], rax
lea rcx, [rbp + 0xd0]
call fcn.1400064ec
nop
test ebx, ebx
jne 0x140002f07
lea rdx, str.File_exists_
call fcn.140004a90
mov rcx, rax
call fcn.140004d20
lea rcx, [0x14003a808]
call fcn.140001240
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtAllocateVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [0x14003a67c]
movzx ecx, byte [0x14003a680]
mov byte [rbp + 0x174], cl
mov r8d, edi
cmp dword [rax], edx
setne r8b
lea rax, str.NtAllocateVirtualMemory_Not_Hooked_n
lea r15, str.NtAllocateVirtualMemory_Hooked_n
mov rcx, r15
test r8d, r8d
cmove rcx, rax
call fcn.140001240
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtProtectVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [0x14003a67c]
movzx ecx, byte [0x14003a680]
mov byte [rbp + 0x174], cl
mov r8d, edi
cmp dword [rax], edx
setne r8b
lea rax, str.NtProtectVirtualMemory_Not_Hooked_n
lea rcx, str.NtProtectVirtualMemory_Hooked_n
test r8d, r8d
cmove rcx, rax
call fcn.140001240
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtCreateThreadEx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [0x14003a67c]
movzx ecx, byte [0x14003a680]
mov byte [rbp + 0x174], cl
mov r8d, edi
cmp dword [rax], edx
setne r8b
lea rax, str.NtCreateThreadEx_Not_Hooked_n
lea rcx, str.NtCreateThreadEx_Hooked_n
test r8d, r8d
cmove rcx, rax
call fcn.140001240
lea rcx, [0x14003a808]
call fcn.140001240
lea rcx, str.___Unhooking_Ntdll__n
call fcn.140001240
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
mov qword [rbp + 0x10], rax
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, str.C:WindowsSystem32_notepad.exe
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
cmp qword [rbp - 0x80], 0
jne 0x140002c1d
lea rcx, str.____Error_creating_process_r_n
call fcn.140001240
lea edi, [rbx - 1]
lea rcx, str.Failed_to_map_ntd11_n
call fcn.140001240
jmp 0x140002fbe
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rbx, rax
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov r9d, 0x18
lea r8, [rbp - 0x68]
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_K32GetModuleInformation]
mov ebx, dword [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8d, ebx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r13, rax
mov r9d, dword [rbp - 0x60]
lea rax, [rbp + 0x180]
mov qword [rsp + 0x20], rax
mov r8, r13
mov rdx, qword [rbp - 0x68]
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
jne 0x140002cb2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.Failed_in_reading_ntdll___u__n
call fcn.140001240
mov edi, 0xffffffff
lea rcx, str.Failed_to_map_ntd11_n
call fcn.140001240
jmp 0x140002fbe
xor edx, edx
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
test r13, r13
jne 0x140002cd8
lea edi, [r13 - 1]
lea rcx, str.Failed_to_map_ntd11_n
call fcn.140001240
jmp 0x140002fbe
mov dword [rsp + 0x50], 0x6c64746e
mov dword [rsp + 0x54], 0x6c642e6c
mov word [rsp + 0x58], 0x6c
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov r12, rax
mov dword [rbp + 0x170], edi
movsxd rsi, dword [r13 + 0x3c]
add rsi, r13
mov r14d, edi
cmp di, word [rsi + 6]
jae 0x140002ddf
mov dword [rbp + 0x178], 0x7865742e
mov word [rbp + 0x17c], 0x74
mov r15, rdi
nop dword [rax]
movzx ebx, word [rsi + 0x14]
add rbx, 0x18
add rbx, r15
add rbx, rsi
mov rax, rbx
lea r8, [rbp + 0x178]
sub r8, rbx
nop dword [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x140002d63
inc rax
test ecx, ecx
jne 0x140002d50
test edx, edx
jne 0x140002dc4
mov edx, dword [rbx + 8]
mov ecx, dword [rbx + 0xc]
add rcx, r12
lea r9, [rbp + 0x170]
mov r8d, 0x40
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x140002eda
mov eax, dword [rbx + 0xc]
mov r8d, dword [rbx + 8]
lea rdx, [rax + r13]
lea rcx, [rax + r12]
call fcn.140009260
mov edx, dword [rbx + 8]
mov ecx, dword [rbx + 0xc]
add rcx, r12
lea r9, [rbp + 0x170]
mov r8d, dword [rbp + 0x170]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x140002ed1
inc r14d
add r15, 0x28
movzx eax, word [rsi + 6]
cmp r14d, eax
jl 0x140002d30
lea r15, str.NtAllocateVirtualMemory_Hooked_n
lea rcx, [rsp + 0x60]
call fcn.140002350
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtAllocateVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r8d, dword [0x14003a67c]
mov r9d, edi
cmp dword [rax], r8d
setne r9b
test r9d, r9d
lea rax, str.NtAllocateVirtualMemory_Not_Hooked_n
cmove r15, rax
mov rcx, r15
call fcn.140001240
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtProtectVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r8d, dword [0x14003a67c]
mov r9d, edi
cmp dword [rax], r8d
setne r9b
test r9d, r9d
lea rax, str.NtProtectVirtualMemory_Hooked_n
lea rcx, str.NtProtectVirtualMemory_Not_Hooked_n
cmove rax, rcx
mov rcx, rax
call fcn.140001240
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtCreateThreadEx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r8d, dword [0x14003a67c]
mov edx, edi
cmp dword [rax], r8d
setne dl
test edx, edx
lea rax, str.NtCreateThreadEx_Hooked_n
lea rcx, str.NtCreateThreadEx_Not_Hooked_n
cmove rax, rcx
mov rcx, rax
call fcn.140001240
lea rcx, str._n_n___Finished______n
call fcn.140001240
jmp 0x140002fbe
lea rbx, str.Failed_to_change_the_protection_back___u__n
jmp 0x140002ee1
lea rbx, str.Failed_to_change_the_protection___u__n
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rbx
call fcn.140001240
mov edi, 0xfffffffe
lea rcx, str.Failed_in_Unhooking__n
call fcn.140001240
jmp 0x140002fbe
lea rdx, str.File_does_not_exist_
call fcn.140004a90
mov rcx, rax
call fcn.140004d20
xor ecx, ecx
call fcn.140010624
mov rcx, rax
call fcn.14000d5f4
mov rbx, rdi
nop dword [rax]
call fcn.14000d5c8
inc rbx
cmp rbx, 0x64
jl 0x140002f30
xor ecx, ecx
call fcn.140010624
mov rcx, rax
call fcn.14000d5f4
mov rbx, rdi
call fcn.14000d5c8
inc rbx
cmp rbx, 0x64
jl 0x140002f50
xor ecx, ecx
call fcn.140010624
mov rcx, rax
call fcn.14000d5f4
mov rbx, rdi
call fcn.14000d5c8
inc rbx
cmp rbx, 0x64
jl 0x140002f70
xor ecx, ecx
call fcn.140010624
mov rcx, rax
call fcn.14000d5f4
mov rbx, rdi
call fcn.14000d5c8
inc rbx
cmp rbx, 0x64
jl 0x140002f90
xor ecx, ecx
call fcn.140010624
mov rcx, rax
call fcn.14000d5f4
mov rbx, rdi
call fcn.14000d5c8
inc rbx
cmp rbx, 0x64
jl 0x140002fb0
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x140002ff7
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002ff2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003014
call fcn.140007228
mov eax, edi
mov rbx, qword [rsp + 0x288]
add rsp, 0x230
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1400112cc
int3