Function at 0x1401b1220
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword ss:[rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rsi, qword [rsp + 0xb8]
mov rbx, r8
xor r8d, r8d
mov r13, rdx
mov rdx, rcx
mov ecx, dword [rsp + 0xb0]
mov dword [rsi], r8d
cmp ecx, 3
jne 0x1401b1445
test rbx, rbx
je 0x1401b143a
cmp r9, 0x1000
jb 0x1401b143a
mov rsi, rbx
mov r14d, r8d
and esi, 0xfff
and rbx, 0xfffffffffffff000
add rsi, 0xfff
mov ebp, r8d
add rsi, r9
shr rsi, 0xc
test rsi, rsi
jne 0x1401b12b2
mov ebx, 0xc000000d
jmp 0x1401b150e
mov r12, rsi
mov dword [rsp + 0x28], 4
mov r15, 0xffffffffffffffff
shl r12, 4
lea r9, [rsp + 0x48]
mov qword [rsp + 0x48], r12
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x40], r8
mov rcx, r15
mov dword [rsp + 0x20], 0x1000
call qword [sym.imp.ntdll.dll_NtAllocateVirtualMemory]
test eax, eax
js 0x1401b1430
mov rdi, qword ds:[rsp + 0x40]
test rdi, rdi
je 0x1401b1430
lfence
test rsi, rsi
je 0x1401b1334
mov rax, rdi
mov rcx, rsi
nop word [rax + rax]
mov qword [rax], rbx
lea rax, [rax + 0x10]
add rbx, 0x1000
sub rcx, 1
jne 0x1401b1320
mov qword [rsp + 0x28], rbp
mov r9, rdi
xor edx, edx
mov qword [rsp + 0x20], r12
mov r8d, 4
mov rcx, r13
call qword [sym.imp.ntdll.dll_NtQueryVirtualMemory]
mov ebx, eax
test eax, eax
js 0x1401b138c
mov r14, rsi
test rsi, rsi
je 0x1401b138c
lea rdx, [rdi + 8]
nop dword [rax]
mov eax, dword [rdx]
lea rdx, [rdx + 0x10]
bt rax, 0x1e
mov rcx, rbp
lea rbp, [rbp + 1]
cmovb rbp, rcx
sub rsi, 1
jne 0x1401b1370
mov r9d, 0x8000
mov qword [rsp + 0x40], rdi
lea r8, [rsp + 0x48]
mov qword [rsp + 0x48], 0
lea rdx, [rsp + 0x40]
mov rcx, r15
call qword [sym.imp.ntdll.dll_NtFreeVirtualMemory]
test ebx, ebx
js 0x1401b150e
mov rcx, r14
xorps xmm0, xmm0
sub rcx, rbp
js 0x1401b13cd
cvtsi2ss xmm0, rcx
jmp 0x1401b13e2
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
xorps xmm1, xmm1
test r14, r14
js 0x1401b1405
mov rax, qword ds:[rsp + 0xb8]
cvtsi2ss xmm1, r14
divss xmm0, xmm1
movss dword [rax], xmm0
jmp 0x1401b150e
mov rax, r14
and r14d, 1
shr rax, 1
or rax, r14
cvtsi2ss xmm1, rax
mov rax, qword [rsp + 0xb8]
addss xmm1, xmm1
divss xmm0, xmm1
movss dword [rax], xmm0
jmp 0x1401b150e
mov ebx, 0xc000009a
jmp 0x1401b150e
mov eax, 0xc000000d
jmp 0x1401b1510
cmp byte [rsp + 0xa8], 0
lea r8, [fcn.1401787a0]
mov rax, qword [sym.imp.ntdll.dll_NtReadVirtualMemory]
cmovne rax, r8
mov r8, r13
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r9
mov r9, rbx
call fcn.1401aff40
mov r8, rsi
mov rdx, rax
mov rcx, r13
mov rdi, rax
call fcn.1401b0ec0
mov ebx, eax
test rdi, rdi
je 0x1401b150e
mov rdx, qword [rdi + 0x30]
mov r15, 0xffffffffffffffff
test rdx, rdx
je 0x1401b14bc
mov rcx, r15
call qword [sym.imp.ntdll.dll_NtUnmapViewOfSection]
mov qword [rdi + 0x30], 0
mov r8, qword [rdi + 0xb0]
xor edx, edx
mov rcx, qword [0x1402cba10]
test r8, r8
jne 0x1401b14d8
mov r8, qword [rdi + 0x90]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov rcx, qword [rdi + 0x60]
test rcx, rcx
je 0x1401b14fc
add rcx, 0xfffffffffffffff0
lock xadd dword [rcx + 8], r15d
cmp r15d, 1
jne 0x1401b14fc
call fcn.140142200
mov rcx, qword [0x1402cba10]
mov r8, rdi
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov eax, ebx
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret