Function at 0x1400e4290
Capabilities:
Allocate or change rwx memory

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r15, r8
mov edi, edx
mov rsi, rcx
cmp r8, 0x7fe00001
jae 0x1400e45e4
mov r14, r9
lea rbp, [rsi + 0x40]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lea rbx, [r15 + r14]
add rbx, 0x203fff
and rbx, 0xffffffffffe00000
mov r12d, 3
cmp byte [rsi + 0x10], 0
jne 0x1400e42f1
cmp byte [rsi + 4], 1
mov r12d, 2
sbb r12d, 0
lea eax, [r12 - 1]
imul rax, rax, 0x420
lea rcx, [0x1401d3690]
add rcx, rax
mov rdx, rbx
call fcn.1400b6500
test rax, rax
je 0x1400e4604
mov r13, rax
mov qword [rsp + 0x38], r14
lock add qword [rsi + 0x1490], rbx
lock inc qword [rsi + 0x14a8]
lea r14, [rax + 0x1000]
mov edx, 0x1000
mov rcx, r14
mov r8d, 3
call fcn.1400b5f20
mov qword [rsp + 0x40], r12
cmp r12d, 2
jne 0x1400e4374
lock inc qword [rsi + 0x14a8]
lea rcx, [r13 + 0x2000]
mov edx, 0x1000
mov r8d, 3
call fcn.1400b5f20
mov rax, qword [0x1401c35a0]
and rax, r13
cmp rax, qword [0x1401c3588]
mov qword [rsp + 0x28], rbp
jne 0x1400e4395
lea r8, [0x1401c76ec]
jmp 0x1400e43cf
mov rax, qword [0x1401c3598]
and rax, r13
cmp rax, qword [0x1401c3580]
jne 0x1400e43b1
lea r8, [0x1401c36ec]
jmp 0x1400e43cf
mov rax, qword [0x1401c35a8]
and rax, r13
cmp rax, qword [0x1401c3590]
jne 0x1400e46c9
lea r8, [0x1401cb6ec]
mov rcx, qword [rsp + 0x38]
lea rbp, [rcx + r13]
mov r9, r13
sub r9, rax
shr r9, 0x15
lea rax, [r8 + r9*2]
lea rcx, [rbx - 1]
shr rcx, 0x15
lea edx, [rcx + 1]
cmp dx, 1
adc ecx, 1
movzx ecx, cx
cmp dx, 0x10
mov dword [rsp + 0x34], edi
jae 0x1400e4409
xor edx, edx
jmp 0x1400e4470
mov edx, ecx
and edx, 0xfffffff0
mov r10d, edx
lea rax, [rax + r10*2]
lea r8, [r8 + r9*2]
add r8, 0x10
movdqa xmm0, xmmword [0x1401aae80]
xor r9d, r9d
movdqa xmm1, xmmword [0x1401aae90]
movdqa xmm2, xmmword [0x1401aaea0]
nop dword [rax + rax]
movdqa xmm3, xmm0
paddw xmm3, xmm1
movdqu xmmword [r8 + r9*2 - 0x10], xmm0
movdqu xmmword [r8 + r9*2], xmm3
add r9, 0x10
paddw xmm0, xmm2
cmp rdx, r9
jne 0x1400e4440
cmp rdx, rcx
je 0x1400e447e
nop word [rax + rax]
mov word [rax], dx
add rax, 2
inc edx
cmp cx, dx
jne 0x1400e4470
mov qword [r14], rsi
lea rax, [r14 + 0x20]
mov rcx, rbp
and rcx, 0xffffffffffe00000
mov edx, ebp
shr edx, 9
and edx, 0xfe0
lea rdi, [rdx + rcx]
add rdi, 0x1000
cmp rdi, rax
je 0x1400e44c6
test byte [r14 + 0x3e], 0x40
jne 0x1400e46bb
mov ecx, edi
sub ecx, eax
shr ecx, 5
and cl, 0x3f
or cl, 0x80
mov byte [r14 + 0x3e], cl
add r15d, 0xfff
and r15d, 0xfffff000
or byte [rdi + 0x1e], 0x40
movzx eax, byte [rdi + 0x3e]
and al, 0xc0
or al, 1
mov byte [rdi + 0x3e], al
lea r12, [rdi + 0x40]
mov dword [rdi + 0x58], r15d
pxor xmm0, xmm0
movdqa xmmword [rdi], xmm0
mov qword [rdi + 0x10], r12
xor eax, eax
cmp r15d, 0x10001
setae al
shl eax, 0x1b
mov ecx, 0xf7ffffff
and ecx, dword [rdi + 0x18]
or ecx, eax
mov dword [rdi + 0x18], ecx
lock inc qword [rsi + 0x14a8]
mov rcx, rbp
mov rdx, r15
mov r8d, 0x1000
mov r9d, 4
call sub.KERNEL32.dll_VirtualAlloc
test rax, rax
mov r14, qword [rsp + 0x38]
je 0x1400e4617
mov rcx, r15
lock xadd qword [rsi + 0x1478], rcx
add r14, 0xffffffffffffc000
add rcx, r15
mov rax, qword [rsi + 0x1480]
nop dword [rax]
cmp rax, rcx
mov rdx, rcx
cmova rdx, rax
lock cmpxchg qword [rsi + 0x1480], rdx
jne 0x1400e4560
mov qword [rbp], 0
mov qword [rdi], rbp
and byte [rdi + 0x1b], 0xef
lea r15, [rdi + 0x68]
mov qword [rdi + 0x80], rbx
mov qword [rdi + 0x88], r14
mov qword [rdi + 0x78], r12
mov bl, 1
mov rbp, qword [rsp + 0x28]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400e45b4
test bl, bl
je 0x1400e45ee
jmp 0x1400e45c0
mov rcx, rbp
call fcn.1400b5960
test bl, bl
je 0x1400e45ee
mov rax, qword [rsi + 0x1510]
mov qword [r15], rax
test rax, rax
je 0x1400e45d3
mov qword [rax + 8], r15
mov qword [r15 + 8], 0
mov qword [rsi + 0x1510], r15
jmp 0x1400e45f0
test dil, 1
je 0x1400e469b
xor edi, edi
mov rax, rdi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test dil, 1
je 0x1400e46b0
xor edi, edi
xor r15d, r15d
xor ebx, ebx
jmp 0x1400e45a1
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x1400e4630
mov rcx, qword [rsp + 0x28]
call fcn.1400b5960
mov rcx, rsi
call fcn.1400b3630
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, rbp
mov rdx, r15
mov r8d, 0x1000
mov r9d, 4
call sub.KERNEL32.dll_VirtualAlloc
test rax, rax
jne 0x1400e4540
test byte [rsp + 0x34], 1
je 0x1400e46be
lock inc qword [rsi + 0x14a8]
lea rcx, [0x1401d3690]
mov rdx, qword [rsp + 0x40]
mov r8, r13
mov r9, rbx
call fcn.1400b6700
lock sub qword [rsi + 0x1490], rbx
xor r15d, r15d
xor ebx, ebx
jmp 0x1400e459c
add rsi, 0x40
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, r15
call fcn.1400f9bc0
mov rcx, rsi
mov rdx, rbx
call fcn.1400e46d0
int3
mov rcx, rsi
mov rdx, r15
call fcn.1400e4700
int3