Function at 0x140054d84
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], r12
mov qword [rax + 0x20], r13
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x140141480]
xor rax, rsp
mov qword [rbp - 8], rax
mov dword [rbp - 0x50], 5
lea r15, [rbp + 0x18]
movabs r13, 0xff00ff00ff00ff00
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x30], r15
mov rbx, qword [r15]
xor rbx, r13
mov qword [rbp - 0x40], rbx
and qword [r15], 0
xor ecx, ecx
lea edi, [rcx + 3]
lea r12, [0x140040a2c]
lea r14, [0x140000000]
mov rax, qword [0x140143ad0]
test rax, rax
je 0x140054e26
xor edx, edx
cmp rax, r12
je 0x140054e15
inc ecx
mov edx, ecx
mov rax, qword [r14 + rcx*8 + 0x143ad0]
test rax, rax
jne 0x140054dfd
jmp 0x140054e26
mov rdx, qword [r14 + rdx*8 + 0x143df0]
test rdx, rdx
jne 0x140054eff
mov edx, 0x1f4
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdx, rax
test rax, rax
je 0x140054ede
mov rax, r12
mov rcx, rdx
mov r8, rdi
mov r9d, 0x80
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
add rcx, r9
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
add rax, r9
sub r8, 1
jne 0x140054e58
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x70], eax
mov rax, qword [0x140143ac0]
mov qword [r14 + rax*8 + 0x143ad0], r12
mov qword [r14 + rax*8 + 0x143df0], rdx
inc rax
mov qword [0x140143ac0], rax
mov rcx, qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
call rdx
nop
xor rbx, r13
mov qword [r15], rbx
mov qword [rbp - 0x48], rax
lea r12, [rbp + 0x18]
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x30], r12
mov rbx, qword [r12]
xor rbx, r13
mov qword [rbp - 0x40], rbx
and qword [r12], 0
xor ecx, ecx
lea r15, [0x1400408fc]
mov rax, qword [0x140144120]
test rax, rax
je 0x140054f71
xor r9d, r9d
cmp rax, r15
je 0x140054f60
inc ecx
mov r9d, ecx
mov rax, qword [r14 + rcx*8 + 0x144120]
test rax, rax
jne 0x140054f47
jmp 0x140054f71
mov r9, qword [r14 + r9*8 + 0x144440]
test r9, r9
jne 0x14005504a
mov edx, 0x1f4
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r9, rax
test rax, rax
je 0x140055029
mov rax, r15
mov rcx, r9
mov rdx, rdi
mov r8d, 0x80
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
add rcx, r8
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
add rax, r8
sub rdx, 1
jne 0x140054fa3
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x70], eax
mov rax, qword [0x140144110]
mov qword [r14 + rax*8 + 0x144120], r15
mov qword [r14 + rax*8 + 0x144440], r9
inc rax
mov qword [0x140144110], rax
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x48]
mov rcx, qword [sym.imp.USER32.dll_ShowWindow]
call r9
nop
xor rbx, r13
mov qword [r12], rbx
mov edx, ntohs
lea rcx, [rbp - 0x28]
call fcn.140053168
nop
cmp qword [rax + 0x18], 0xf
jbe 0x14005507d
mov rax, qword [rax]
mov qword [rbp - 0x48], rax
lea r15, [rbp + 0x18]
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x30], r15
mov rbx, qword [r15]
xor rbx, r13
mov qword [rbp - 0x40], rbx
and qword [r15], 0
xor ecx, ecx
lea r12, [0x140040a00]
mov rax, qword [0x140146d50]
test rax, rax
je 0x1400550dd
xor r8d, r8d
cmp rax, r12
je 0x1400550cc
inc ecx
mov r8d, ecx
mov rax, qword [r14 + rcx*8 + 0x146d50]
test rax, rax
jne 0x1400550b3
jmp 0x1400550dd
mov r8, qword [r14 + r8*8 + 0x147070]
test r8, r8
jne 0x1400551b6
mov edx, 0x1f4
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r8, rax
test rax, rax
je 0x140055195
mov rax, r12
mov rcx, r8
mov rdx, rdi
mov r9d, 0x80
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
add rcx, r9
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
add rax, r9
sub rdx, 1
jne 0x14005510f
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x70], eax
mov rax, qword [0x140146d40]
mov qword [r14 + rax*8 + 0x146d50], r12
mov qword [r14 + rax*8 + 0x147070], r8
inc rax
mov qword [0x140146d40], rax
lea rdx, [rbp - 0x48]
mov rcx, qword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
call r8
nop
xor rbx, r13
mov qword [r15], rbx
mov rdx, qword [rbp - 0x10]
cmp rdx, 0xf
jbe 0x140055209
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140055204
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140055204
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400c1e64
mov dword [rbp - 0x50], 0x100
lea r15, [rbp + 0x18]
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x30], r15
mov rbx, qword [r15]
xor rbx, r13
mov qword [rbp - 0x40], rbx
and qword [r15], 0
xor ecx, ecx
lea r12, [0x140040a2c]
mov rax, qword [0x1401473a0]
test rax, rax
je 0x14005526a
xor edx, edx
cmp rax, r12
je 0x140055259
inc ecx
mov edx, ecx
mov rax, qword [r14 + rcx*8 + 0x1473a0]
test rax, rax
jne 0x140055241
jmp 0x14005526a
mov rdx, qword [r14 + rdx*8 + 0x1476c0]
test rdx, rdx
jne 0x140055343
mov edx, 0x1f4
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdx, rax
test rax, rax
je 0x140055322
mov rax, r12
mov rcx, rdx
mov r8, rdi
mov r9d, 0x80
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
add rcx, r9
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
add rax, r9
sub r8, 1
jne 0x14005529c
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x70], eax
mov rax, qword [0x140147390]
mov qword [r14 + rax*8 + 0x1473a0], r12
mov qword [r14 + rax*8 + 0x1476c0], rdx
inc rax
mov qword [0x140147390], rax
mov rcx, qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
call rdx
nop
xor rbx, r13
mov qword [r15], rbx
mov qword [rbp - 0x48], rax
lea rax, [rbp + 0x18]
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x30], rax
mov rbx, qword [rax]
xor rbx, r13
mov qword [rbp - 0x40], rbx
and qword [rax], 0
xor ecx, ecx
lea r15, [0x1400408fc]
mov rax, qword [0x1401479f0]
test rax, rax
je 0x1400553b3
xor r9d, r9d
cmp rax, r15
je 0x1400553a2
inc ecx
mov r9d, ecx
mov rax, qword [r14 + rcx*8 + 0x1479f0]
test rax, rax
jne 0x140055389
jmp 0x1400553b3
mov r9, qword [r14 + r9*8 + 0x147d10]
test r9, r9
jne 0x14005548c
mov edx, 0x1f4
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r9, rax
test rax, rax
je 0x14005546b
mov rax, r15
mov rcx, r9
mov rdx, rdi
mov r8d, 0x80
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
add rcx, r8
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
add rax, r8
sub rdx, 1
jne 0x1400553e5
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x70], eax
mov rax, qword [0x1401479e0]
mov qword [r14 + rax*8 + 0x1479f0], r15
mov qword [r14 + rax*8 + 0x147d10], r9
inc rax
mov qword [0x1401479e0], rax
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x48]
mov rcx, qword [sym.imp.KERNEL32.dll_SetPriorityClass]
call r9
nop
lea r12, [rbp + 0x18]
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x30], r12
mov qword [rbp - 0x40], rbx
and qword [r12], 0
xor ecx, ecx
lea r15, [0x140040a2c]
mov rax, qword [0x140146700]
test rax, rax
je 0x1400554f6
xor r10d, r10d
cmp rax, r15
je 0x1400554e5
inc ecx
mov r10d, ecx
mov rax, qword [r14 + rcx*8 + 0x146700]
test rax, rax
jne 0x1400554cc
jmp 0x1400554f6
mov r10, qword [r14 + r10*8 + 0x146a20]
test r10, r10
jne 0x1400555cb
mov edx, 0x1f4
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r10, rax
test rax, rax
je 0x1400555aa
mov rax, r15
mov rcx, r10
mov edx, 0x80
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
add rcx, rdx
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
add rax, rdx
sub rdi, 1
jne 0x140055524
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x70], eax
mov rax, qword [0x1401466f0]
mov qword [r14 + rax*8 + 0x146700], r15
mov qword [r14 + rax*8 + 0x146a20], r10
inc rax
mov qword [0x1401466f0], rax
mov rcx, qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
call r10
mov r8d, eax
xor rbx, r13
mov qword [r12], rbx
mov eax, 0x51eb851f
imul r8d
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul eax, edx, 0xc8
sub r8d, eax
mov dword [0x140142188], r8d
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1400c1f80
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov r12, qword [r11 + 0x30]
mov r13, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret