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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov r15, r8
mov ebp, edx
mov rsi, rcx
cmp r8, 0x7fe00001
jae 0x14009f195
mov r14, r9
lea rcx, [rsi + 0x40]
mov qword [rsp + 0x20], rcx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lea rbx, [r15 + r14]
add rbx, 0x203fff
and rbx, 0xffffffffffe00000
mov r13d, 3
cmp byte [rsi + 0x10], 0
jne 0x14009edd5
mov r13d, 2
cmp byte [rsi + 2], 0
je 0x14009f0fc
lea eax, [r13 - 1]
imul rax, rax, 0x420
lea rcx, [0x14023e790]
add rcx, rax
mov rdx, rbx
call fcn.140099de0
test rax, rax
je 0x14009f183
mov r12, rax
lock add qword [rsi + 0x1898], rbx
lock inc qword [rsi + 0x18b0]
lea rdi, [rax + 0x1000]
mov edx, 0x1000
mov rcx, rdi
mov r8d, 3
call fcn.140099880
cmp r13d, 2
jne 0x14009ee4e
lock inc qword [rsi + 0x18b0]
lea rcx, [r12 + 0x2000]
mov edx, 0x1000
mov r8d, 3
call fcn.140099880
mov r8, r12
movabs rax, 0xfffffffc00000000
and rax, r12
cmp rax, qword [0x14022e648]
je 0x14009eebe
cmp rax, qword [0x14022e640]
je 0x14009eea5
mov rax, qword [0x14022e658]
and rax, r8
cmp rax, qword [0x14022e650]
jne 0x14009f1cd
mov rcx, r12
sub rcx, rax
shr rcx, 0x15
lea rax, [0x14022e76c]
lea rdx, [rax + rcx*2]
add rdx, 0x8000
jmp 0x14009eedc
mov rax, r12
shr rax, 0x15
and eax, 0x1fff
lea rcx, [0x14022e76c]
lea rdx, [rcx + rax*2]
jmp 0x14009eedc
mov rax, r12
shr rax, 0x15
and eax, 0x1fff
lea rcx, [0x14022e76c]
lea rdx, [rcx + rax*2]
add rdx, 0x4000
mov qword [rsp + 0x30], r8
add r12, r14
lea rax, [rbx - 1]
shr rax, 0x15
lea ecx, [rax + 1]
cmp cx, 1
adc eax, 1
movzx eax, ax
cmp cx, 0xf
mov dword [rsp + 0x2c], ebp
jbe 0x14009ef58
mov ecx, eax
and ecx, 0xfffffff0
mov r8d, ecx
lea r8, [rdx + r8*2]
movdqa xmm0, xmmword [0x1402152d0]
xor r9d, r9d
movdqa xmm1, xmmword [0x1402152e0]
movdqa xmm2, xmmword [0x1402152f0]
nop word [rax + rax]
movdqa xmm3, xmm0
paddw xmm3, xmm1
movdqu xmmword [rdx + r9*2], xmm0
movdqu xmmword [rdx + r9*2 + 0x10], xmm3
add r9, 0x10
paddw xmm0, xmm2
cmp rcx, r9
jne 0x14009ef30
cmp ecx, eax
je 0x14009ef6f
jmp 0x14009ef60
xor ecx, ecx
mov r8, rdx
nop dword [rax]
mov word [r8], cx
add r8, 2
inc ecx
cmp ax, cx
jne 0x14009ef60
mov qword [rdi], rsi
lea rax, [rdi + 0x20]
mov rcx, r12
and rcx, 0xffffffffffe00000
mov edx, r12d
shr edx, 9
and edx, 0xfe0
lea rbp, [rdx + rcx]
add rbp, 0x1000
cmp rbp, rax
je 0x14009efb6
test byte [rdi + 0x3e], 0x40
jne 0x14009f1bf
mov ecx, ebp
sub ecx, eax
shr ecx, 5
and cl, 0x3f
or cl, 0x80
mov byte [rdi + 0x3e], cl
add r15d, 0xfff
and r15d, 0xfffff000
or byte [rbp + 0x1e], 0x40
movzx eax, byte [rbp + 0x3e]
and al, 0xc0
inc al
mov byte [rbp + 0x3e], al
lea rdi, [rbp + 0x40]
mov dword [rbp + 0x58], r15d
mov byte [rbp + 0x68], 1
pxor xmm0, xmm0
movdqa xmmword [rbp], xmm0
mov qword [rbp + 0x10], rdi
or byte [rbp + 0x1b], 0x80
lock inc qword [rsi + 0x18b0]
mov rcx, r12
mov rdx, r15
mov r8d, 0x1000
mov r9d, 4
call sub.KERNEL32.dll_VirtualAlloc
test rax, rax
je 0x14009f107
mov rcx, r15
lock xadd qword [rsi + 0x1880], rcx
add r14, 0xffffffffffffc000
add rcx, r15
mov rax, qword [rsi + 0x1888]
nop word cs:[rax + rax]
cmp rax, rcx
mov rdx, rcx
cmova rdx, rax
lock cmpxchg qword [rsi + 0x1888], rdx
jne 0x14009f040
lea rax, [0x140215318]
lea rcx, [0x140215310]
cmp byte [rsi + 0x13], 0
cmovne rcx, rax
mov rax, qword [rcx]
mov rax, qword [rax]
mov rdx, r12
call qword [0x14021e390]
mov qword [rbp], rax
and byte [rbp + 0x1c], 0xfe
lea r15, [rbp + 0x70]
mov qword [rbp + 0x88], rbx
mov qword [rbp + 0x90], r14
mov qword [rbp + 0x80], rdi
mov dil, 1
mov rbx, qword [rsp + 0x20]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14009f0d9
test dil, dil
je 0x14009f0e6
mov rax, qword [rsi + 0x1918]
mov qword [r15], rax
test rax, rax
je 0x14009f0c8
mov qword [rax + 8], r15
mov qword [r15 + 8], 0
mov qword [rsi + 0x1918], r15
jmp 0x14009f0e8
mov rcx, rbx
call fcn.14001c6f0
test dil, dil
jne 0x14009f0b5
xor ebp, ebp
mov rax, rbp
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r13d, 1
jmp 0x14009edd5
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x14009f120
mov rcx, qword [rsp + 0x20]
call fcn.14001c6f0
mov rcx, rsi
call fcn.140097030
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, r12
mov rdx, r15
mov r8d, 0x1000
mov r9d, 4
call sub.KERNEL32.dll_VirtualAlloc
test rax, rax
jne 0x14009f018
test byte [rsp + 0x2c], 1
je 0x14009f1c2
lock inc qword [rsi + 0x18b0]
lea rcx, [0x14023e790]
mov edx, r13d
mov r8, qword [rsp + 0x30]
mov r9, rbx
call fcn.140099fe0
lock sub qword [rsi + 0x1898], rbx
jmp 0x14009f18b
test bpl, 1
je 0x14009f1b4
xor ebp, ebp
xor r15d, r15d
xor edi, edi
jmp 0x14009f09e
test bpl, 1
jne 0x14009f0e6
add rsi, 0x40
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, r15
call fcn.1400a0580
mov rcx, rsi
mov rdx, rbx
call fcn.14009f1e0
int3
mov rcx, rsi
mov rdx, r15
call fcn.14009f210
int3