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

Disassembly:
push rbx
push rbp
push r13
sub rsp, 0x100
mov rax, qword [0x1800a8040]
xor rax, rsp
mov qword [rsp + 0xd0], rax
xor ebp, ebp
mov qword [rsp + 0x38], rcx
mov rbx, rdx
mov r13, rcx
test rdx, rdx
jne 0x18002a698
lea eax, [rdx + 0x57]
jmp 0x18002aa7c
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x1800d7df4], eax
je 0x18002a6b0
mov eax, 0x10dd
jmp 0x18002aa7c
mov eax, dword [0x1800d7df0]
test eax, eax
jne 0x18002aa7c
test r13, r13
je 0x18002a6dd
mov rcx, qword [r13]
test rcx, rcx
jne 0x18002a6e7
mov dword [0x1800d7df0], 6
mov qword [0x1800d7e00], r13
mov eax, 6
jmp 0x18002aa7c
mov qword [rsp + 0x130], rsi
mov qword [rsp + 0xf8], rdi
mov rdi, rbp
mov qword [rsp + 0xf0], r12
mov qword [rsp + 0xe8], r14
mov r14, rbp
mov qword [rsp + 0xe0], r15
call fcn.18002a020
mov rcx, rbx
mov r15, rax
call fcn.18002a020
mov qword [rsp + 0x28], rax
cmp rax, r15
jne 0x18002a740
cmp dword [0x1800d7d78], ebp
jne 0x18002aa4b
jmp 0x18002a9fe
mov ecx, 0x30
call fcn.18002b858
mov rcx, r15
mov qword [rsp + 0x30], rax
mov r14, rax
call fcn.180029e40
mov rdi, rax
test rax, rax
jne 0x18002a76a
lea ebp, [rax + 8]
jmp 0x18002a9fe
xor eax, eax
mov dword [rsp + 0x20], ebp
mov qword [rdi + 0x40], rax
lea r14, [0x1800df170]
mov r8, r15
mov r12, rdi
movabs r13, 0x8040000403
nop dword [rax + rax]
xorps xmm0, xmm0
mov dword [rsp + 0x40], ebp
lea rax, [rsp + 0x88]
test r12, r12
movups xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x90]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x40]
cmovne rcx, r12
mov qword [rsp + 0x78], rax
mov rbx, r8
movups xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x88], rbp
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0xb0], xmm0
movups xmmword [rsp + 0xc0], xmm0
test r8, r8
jne 0x18002a813
lea ecx, [r8 + 0xd]
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r8, rbp
jmp 0x18002a832
movzx eax, byte [r8]
mov r9, r8
shl rax, 4
mov r8, rcx
add rax, r14
lea rcx, [rsp + 0x50]
mov rdx, rax
call qword [rax + 8]
mov r8, rax
mov r9d, dword [rsp + 0x20]
mov esi, r8d
movsxd rax, dword [rsp + 0x40]
sub esi, r15d
sub rax, rbx
add rax, r8
add r12, rax
movzx eax, r12b
sub al, dil
shl al, 3
movzx ecx, al
xor cl, sil
and cl, 7
xor cl, al
mov byte [r9 + rdi + 0x40], cl
inc r9d
mov dword [rsp + 0x20], r9d
cmp r9d, 8
jae 0x18002a8ca
movzx ecx, byte [rbx]
cmp cl, 0xeb
je 0x18002a8ca
lea eax, [rcx + 0x3e]
cmp al, 0x27
ja 0x18002a888
bt r13, rax
jb 0x18002a8ca
cmp cl, 0xf3
jne 0x18002a93d
cmp byte [rbx + 1], 0xc3
je 0x18002a8ca
cmp cl, 0x26
je 0x18002a8b5
cmp cl, 0x2e
je 0x18002a8b5
cmp cl, 0x36
je 0x18002a8b5
cmp cl, 0x3e
je 0x18002a8b5
cmp cl, 0x64
je 0x18002a8b5
cmp cl, 0x65
jne 0x18002a8c1
cmp byte [rbx + 1], 0xff
jne 0x18002a8c1
cmp byte [rbx + 2], 0x25
je 0x18002a8ca
cmp esi, 5
jb 0x18002a790
mov r14, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
cmp esi, 5
jae 0x18002a900
nop dword [rax]
mov rcx, r8
call fcn.1800298d0
test eax, eax
je 0x18002a9f0
cdqe
add r8, rax
mov rsi, r8
sub esi, r15d
cmp esi, 5
jb 0x18002a8e0
cmp r9d, 8
ja 0x18002a9f0
lea rax, [rdi + 0x1e]
cmp r12, rax
jbe 0x18002a914
int3
sub r12b, dil
mov r8d, esi
lea rcx, [rdi + 0x20]
mov byte [rdi + 0x1e], r12b
mov rdx, r15
mov byte [rdi + 0x3e], sil
call fcn.18007b360
cmp esi, 0x19
jbe 0x18002a94f
mov ebp, 6
jmp 0x18002a9fe
cmp cl, 0xff
jne 0x18002a897
cmp byte [rbx + 1], 0x25
jmp 0x18002a8bf
movzx edx, byte [rdi + 0x1e]
lea rax, [rsi + r15]
mov qword [rdi + 0x48], rax
add rdx, rdi
mov rax, qword [rsp + 0x28]
mov qword [rdi + 0x50], rax
mov eax, edi
lea rcx, [rdx + 6]
mov word [rdx], 0x25ff
sub eax, ecx
lea rcx, [rdx + 6]
add eax, 0x48
mov dword [rdx + 2], eax
lea rax, [rdi + 0x1e]
mov r8, rax
sub r8, rcx
cmp rcx, rax
cmova r8, rbp
test r8, r8
je 0x18002a99b
mov dl, 0xcc
call fcn.18007afa0
mov edx, esi
lea r9, [rsp + 0x44]
mov r8d, 0x40
mov dword [rsp + 0x44], ebp
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x18002a9c3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
jmp 0x18002a9fe
mov dword [r14 + 8], ebp
mov qword [r14 + 0x10], r13
mov qword [r14 + 0x20], rdi
mov qword [r14 + 0x18], r15
mov eax, dword [rsp + 0x44]
mov dword [r14 + 0x28], eax
mov rax, qword [0x1800d7e18]
mov qword [r14], rax
xor eax, eax
mov qword [0x1800d7e18], r14
jmp 0x18002aa54
cmp dword [0x1800d7d78], 0
mov ebp, 9
jne 0x18002aa09
mov dword [0x1800d7df0], ebp
test rdi, rdi
je 0x18002aa39
xorps xmm0, xmm0
mov r8, rdi
movups xmmword [rdi], xmm0
and r8, 0xffffffffffff0000
movups xmmword [rdi + 0x10], xmm0
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x30], xmm0
movups xmmword [rdi + 0x40], xmm0
movups xmmword [rdi + 0x50], xmm0
mov rax, qword [r8 + 0x10]
mov qword [rdi + 0x48], rax
mov qword [r8 + 0x10], rdi
test r14, r14
je 0x18002aa4b
mov edx, 0x30
mov rcx, r14
call fcn.18002b730
mov qword [0x1800d7e00], r13
mov eax, ebp
mov r14, qword [rsp + 0xe8]
mov r12, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0xf8]
mov rsi, qword [rsp + 0x130]
mov r15, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.18002b710
add rsp, 0x100
pop r13
pop rbp
pop rbx
ret