Function at 0x140120700
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
movaps xmmword [rsp + 0x40], xmm6
mov r13, r8
mov r12, rcx
movzx ebx, word [rdx + 0x1c]
dec r8
add rbx, r8
movzx ecx, byte [rdx + 0x1e]
shr rbx, cl
mov qword [rsp + 0xb8], rbx
lea edi, [rbx + 0x3f]
shr edi, 6
mov dword [rsp + 0xb0], edi
mov ecx, 0x68
call fcn.140147e00
mov rsi, rax
xorps xmm6, xmm6
movdqa xmmword [rsp + 0x30], xmm6
mov ebp, 1
test rax, rax
je 0x14012097f
mov ecx, edi
shl rcx, 4
call fcn.140147e00
mov r14, rax
xor r15d, r15d
test rax, rax
je 0x140120870
test byte [r12], bpl
je 0x14012090e
test r13, r13
jne 0x1401207a1
lea ebp, [r15 + 2]
jmp 0x14012086a
mov r9, r13
shr r9, 0x20
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], r13d
xor edx, edx
lea rcx, [rdx - 1]
lea r8d, [rdx + 0x40]
call qword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov rdi, rax
test rax, rax
je 0x14012086a
xor ebx, ebx
lea r15, [rsp + 0x30]
lea r12, [0x1401d7938]
nop dword [rax]
mov ecx, dword [r12]
not ecx
and ecx, 7
mov eax, ecx
shr eax, 1
not eax
and eax, ebp
lea eax, [rax*2 + 2]
shr ecx, 2
mov edx, eax
or edx, 0x20
test cl, cl
cmove edx, eax
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [r15], rax
test rax, rax
je 0x140120842
inc ebx
add r12, 4
add r15, 8
cmp ebx, 2
jb 0x1401207e0
movaps xmm6, xmmword [rsp + 0x30]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebp, ebp
jmp 0x14012085a
test ebx, ebx
jne 0x140120851
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r12, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xb8]
mov r15d, 4
test r14, r14
je 0x140120977
movdqa xmm0, xmm6
psrldq xmm0, 8
movq rdi, xmm0
test ebp, ebp
jne 0x14012096f
mov eax, dword [r12]
shr eax, 2
test al, 1
je 0x1401208ad
mov rcx, r13
shr rcx, 2
test rcx, rcx
je 0x1401208ad
mov eax, dword [r12 + 0xc]
rep stosd dword [rdi], eax
mov edi, dword [rsp + 0xb0]
mov r8d, edi
shl r8, 4
xor edx, edx
mov rcx, r14
call fcn.14013b710
xor ecx, ecx
mov qword [rsi], rcx
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rcx
mov qword [rsi + 0x18], rcx
mov rax, qword [rsp + 0xa8]
mov qword [rsi + 0x20], rax
movups xmmword [rsi + 0x28], xmm6
mov qword [rsi + 0x38], r13
mov dword [rsi + 0x40], r15d
mov dword [rsi + 0x44], ebx
mov dword [rsi + 0x48], ecx
mov dword [rsi + 0x4c], ebx
mov dword [rsi + 0x50], ecx
mov dword [rsi + 0x54], ebx
mov qword [rsi + 0x58], r14
lea rax, [r14 + rdi*8]
mov qword [rsi + 0x60], rax
mov rax, rsi
jmp 0x140120981
test r13, r13
jne 0x140120929
lea ebp, [r13 + 2]
xor edi, edi
mov qword [rsp + 0x38], rdi
movdqa xmm6, xmmword [rsp + 0x30]
jmp 0x140120887
mov r9d, 0x40
mov r8d, 0x3000
mov rdx, r13
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdi, rax
test rax, rax
jne 0x140120958
mov qword [rsp + 0x38], rax
movdqa xmm6, xmmword [rsp + 0x30]
jmp 0x140120887
mov qword [rsp + 0x30], rax
xor ebp, ebp
mov qword [rsp + 0x38], rdi
movdqa xmm6, xmmword [rsp + 0x30]
jmp 0x140120887
mov rcx, r14
call fcn.14013f71c
mov rcx, rsi
call fcn.14013f71c
xor eax, eax
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret