Function at 0x7ffbf1cf44c4
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, 0x98
lea r13, [rcx + 0x18]
mov r14, rdx
mov rbp, qword [r13]
mov r15d, dword [rbp + 1]
lea r11, [0x7ffbf1ca0000]
mov edx, dword [rbp + 5]
mov ecx, 0xfffffff
and rdx, rcx
and r15, rcx
mov qword [rsp + 0x80], r13
lea rax, [0x7ffbf1ca0000]
add r15, rax
mov eax, dword [0x7ffbf1cb6330]
lea rsi, [rax + rdx - 1]
mov qword [rsp + 0x50], r15
mov rcx, rax
xor edx, edx
mov rax, rsi
div rcx
mov eax, dword [0x7ffbf1cb6330]
sub rsi, rdx
mov r10d, dword [0x7ffbf1d46a58]
mov eax, dword [0x7ffbf1cb6330]
mov eax, dword [0x7ffbf1d46a58]
test eax, eax
je 0x7ffbf1cf45e7
xor r8d, r8d
mov edi, dword [0x7ffbf1d46a58]
xor eax, eax
dec edi
inc rdi
mov r9, rdi
je 0x7ffbf1cf45a1
mov rcx, qword [0x7ffbf1d6a520]
imul rcx, rcx, 0x343fd
shl rax, 0x10
shr r9, 0x10
add rcx, 0x269ec3
mov rdx, rcx
shr rdx, 0x10
movzx edx, dx
or rax, rdx
test r9, r9
jne 0x7ffbf1cf4572
mov qword [0x7ffbf1d6a520], rcx
xor edx, edx
div rdi
test r10, r10
je 0x7ffbf1cf45dc
inc r8
mov ecx, 0xffff3cd2
mov eax, 0xc32d
lock cmpxchg dword [r11 + rdx*4 + 0xcb084], ecx
je 0x7ffbf1cf487c
lea rax, [rdx + 1]
xor edx, edx
mov ecx, dword [0x7ffbf1d46a58]
div rcx
cmp r8, r10
jb 0x7ffbf1cf45ab
xor ebx, ebx
test rbx, rbx
jne 0x7ffbf1cf4714
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor edi, edi
mov r12d, eax
inc rdi
xor eax, eax
mov rcx, qword [0x7ffbf1d690d0]
test rcx, rcx
mov r9, rcx
mov r8, rcx
je 0x7ffbf1cf463f
mov rcx, qword [0x7ffbf1d6a520]
imul rcx, rcx, 0x343fd
shl rax, 0x10
shr r9, 0x10
add rcx, 0x269ec3
mov rdx, rcx
shr rdx, 0x10
movzx edx, dx
or rax, rdx
test r9, r9
jne 0x7ffbf1cf4610
mov qword [0x7ffbf1d6a520], rcx
mov r9d, 0x40
xor edx, edx
div r8
mov r8d, 0x3000
mov rcx, rdx
mov rdx, rsi
shl rcx, 0x10
add rcx, qword [0x7ffbf1d68290]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
test rax, rax
je 0x7ffbf1cf46aa
and qword [rsp + 0x28], 0
mov rdx, rax
mov r8d, esi
and qword [rsp + 0x20], 0
lea r9, [0x7ffbf1d42740]
mov rcx, rax
or rcx, 3
call qword [sym.imp.ntdll.dll_RtlInstallFunctionTableCallback]
test al, al
jne 0x7ffbf1cf46be
xor edx, edx
mov r8d, 0x8000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp rdi, 0x11
jb 0x7ffbf1cf45f2
xor ebx, ebx
cmp qword [0x7ffbf1d690c8], rbx
ja 0x7ffbf1cf46cc
test bl, 3
je 0x7ffbf1cf46f1
test rbx, rbx
je 0x7ffbf1cf46ef
mov rcx, rbx
or rcx, 3
call qword [sym.imp.ntdll.dll_RtlDeleteFunctionTable]
mov r8d, 0x8000
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor ebx, ebx
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_SetLastError]
lea r11, [0x7ffbf1ca0000]
test rbx, rbx
je 0x7ffbf1cf453b
mov rcx, rsi
mov rdi, rbx
xor eax, eax
rep stosb byte [rdi], al
mov eax, 0x21af3a23
lea rax, [0x7ffbf1ca0000]
add qword [r13], 9
mov r10d, dword [0x7ffbf1cb6330]
mov r9d, r15d
mov ebp, dword [rbp + 5]
and ebp, 0xfffffff
mov qword [rsp + 0xf0], rbp
sub r10, rbp
xor edi, edi
sub r9d, eax
inc r10
mov r8, r10
je 0x7ffbf1cf4786
mov rdx, qword [0x7ffbf1d6a520]
imul rdx, rdx, 0x343fd
shl rdi, 0x10
shr r8, 0x10
add rdx, 0x269ec3
mov rcx, rdx
shr rcx, 0x10
movzx eax, cx
or rdi, rax
test r8, r8
jne 0x7ffbf1cf4757
mov qword [0x7ffbf1d6a520], rdx
mov ecx, r9d
xor edx, edx
mov rax, rdi
div r10
lea r12, [rdx + rbx]
mov qword [rsp + 0x60], r12
mov rdx, rbp
mov r8, r12
mov eax, 0x2100e01e
mov rsi, 0xfffffffffffff000
mov rbx, qword [r15 + rbp]
xor dil, dil
mov qword [rsp + 0x68], rbx
test rbp, rbp
je 0x7ffbf1cf4e16
lea rcx, [rsp + 0x68]
mov eax, 0xa656a90f
mov eax, 0xfffffff
mov r9d, dword [rsp + 0x6c]
and qword [rsp + 0x30], 0
and rbx, rax
and r9, rax
mov rax, qword [0x7ffbf1cf0238]
lea rdx, [0x7ffbf1ca0000]
add rbx, rdx
mov rcx, rdx
sub rcx, rax
mov qword [rsp + 0x38], rcx
jne 0x7ffbf1cf4893
xor r10d, r10d
test r9, r9
je 0x7ffbf1cf4b8d
mov r8d, dword [rsp + 0x30]
mov r14d, 0x7defec7d
mov ecx, dword [rsp + 0x34]
movzx eax, byte [rbx + r10]
inc r10
add eax, r14d
add r8d, eax
add eax, ecx
imul eax, eax, 0x7defec7d
ror eax, 0x1f
imul rax, rax, 0x7defec7d
mov qword [rsp + 0x48], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x48]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
btr ecx, 0x1f
add ecx, edx
add r8d, ecx
cmp r10, r9
jb 0x7ffbf1cf481e
mov dword [rsp + 0x34], ecx
mov dword [rsp + 0x30], r8d
jmp 0x7ffbf1cf4b8d
mov ecx, dword [0x7ffbf1cb6330]
imul rcx, rdx
lea rbx, [rcx + r11 + 0xae000]
jmp 0x7ffbf1cf45de
movsxd rcx, dword [0x7ffbf1ca003c]
lea rax, [rbx + r9]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x58], rax
mov eax, ebx
sub eax, edx
lea rbp, [rax + r9]
mov r11d, eax
add r8, rdx
and r11, rsi
mov esi, eax
mov edx, dword [rcx + rdx + 0xb4]
mov r9, rbp
and r9, 0xfffffffffffff000
sub rsi, r11
mov qword [rsp + 0x78], r9
sub rbp, r9
add rdx, r8
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x70], rbp
jmp 0x7ffbf1cf48f8
mov eax, dword [r8]
cmp rax, r11
jae 0x7ffbf1cf48fd
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rdx
jne 0x7ffbf1cf48e9
mov r12d, 0xfff
xor r10d, r10d
cmp r8, rdx
je 0x7ffbf1cf4940
mov eax, dword [r8]
cmp rax, r11
jne 0x7ffbf1cf4940
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x7ffbf1cf4940
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r12
cmp rax, rsi
jae 0x7ffbf1cf493b
inc r10
add rdx, 2
cmp r10, rcx
jne 0x7ffbf1cf4924
mov rdx, qword [rsp + 0x48]
mov r13d, dword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
mov r14d, 0x7defec7d
mov esi, dword [rsp + 0x34]
lea rdi, [0x7ffbf1ca0000]
cmp r8, rdx
je 0x7ffbf1cf4b17
mov eax, dword [r8]
cmp rax, r9
ja 0x7ffbf1cf4b17
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r10, rax
jne 0x7ffbf1cf499d
add r8, rcx
cmp r8, rdx
je 0x7ffbf1cf4b17
mov eax, dword [r8]
cmp rax, r9
ja 0x7ffbf1cf4b17
xor r10d, r10d
jmp 0x7ffbf1cf4970
mov eax, dword [r8]
cmp rax, r9
jne 0x7ffbf1cf49b7
movzx eax, word [r8 + r10*2 + 8]
and rax, r12
cmp rax, rbp
jae 0x7ffbf1cf4b17
mov ecx, 0xf000
mov rax, r10
inc r10
test word [r8 + rax*2 + 8], cx
je 0x7ffbf1cf495b
movzx r9d, word [r8 + rax*2 + 8]
mov ebp, r9d
and ebp, r12d
xor r12d, r12d
add ebp, dword [r8]
add rbp, rdi
mov r11, rbp
sub r11, rbx
je 0x7ffbf1cf4a40
movzx eax, byte [r12 + rbx]
inc r12
add eax, r14d
add r13d, eax
add eax, esi
imul eax, eax, 0x7defec7d
ror eax, 0x1f
imul rax, rax, 0x7defec7d
mov qword [rsp + 0x38], rax
mov ecx, dword [rsp + 0x38]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov esi, edx
sar esi, 0x1f
btr esi, 0x1f
add esi, edx
add r13d, esi
cmp r12, r11
jb 0x7ffbf1cf49e7
mov dword [rsp + 0x34], esi
mov dword [rsp + 0x30], r13d
shr r9d, 0xc
mov rax, qword [rbp]
cmp r9d, 3
mov qword [rsp + 0x40], rax
je 0x7ffbf1cf4a61
sub r9d, 0xa
neg r9d
sbb edx, edx
add edx, 3
jmp 0x7ffbf1cf4a66
mov edx, 2
mov r9, r15
neg r9
sub edx, 2
je 0x7ffbf1cf4a8c
cmp edx, 1
je 0x7ffbf1cf4a7c
or r9, 0xffffffffffffffff
jmp 0x7ffbf1cf4a97
add rax, r9
mov r9d, 8
mov qword [rsp + 0x40], rax
jmp 0x7ffbf1cf4a97
add dword [rsp + 0x40], r9d
mov r9d, 4
xor r11d, r11d
test r9, r9
je 0x7ffbf1cf4af9
movzx eax, byte [rsp + r11 + 0x40]
inc r11
add eax, r14d
add r13d, eax
add eax, esi
imul eax, eax, 0x7defec7d
ror eax, 0x1f
imul rax, rax, 0x7defec7d
mov qword [rsp + 0x38], rax
mov ecx, dword [rsp + 0x38]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov esi, edx
sar esi, 0x1f
btr esi, 0x1f
add esi, edx
add r13d, esi
cmp r11, r9
jb 0x7ffbf1cf4a9f
mov dword [rsp + 0x34], esi
mov dword [rsp + 0x30], r13d
mov rdx, qword [rsp + 0x48]
mov r12d, 0xfff
lea rbx, [r9 + rbp]
mov rbp, qword [rsp + 0x70]
mov r9, qword [rsp + 0x78]
jmp 0x7ffbf1cf495b
xor r8d, r8d
mov rbp, qword [rsp + 0x58]
mov dil, r8b
sub rbp, rbx
mov r15, qword [rsp + 0x50]
je 0x7ffbf1cf4b85
movzx eax, byte [r8 + rbx]
inc r8
add eax, r14d
add r13d, eax
add eax, esi
imul eax, eax, 0x7defec7d
ror eax, 0x1f
imul rax, rax, 0x7defec7d
mov qword [rsp + 0x58], rax
mov ecx, dword [rsp + 0x58]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov esi, edx
sar esi, 0x1f
btr esi, 0x1f
add esi, edx
add r13d, esi
cmp r8, rbp
jb 0x7ffbf1cf4b2c
mov dword [rsp + 0x34], esi
mov dword [rsp + 0x30], r13d
mov rbp, qword [rsp + 0xf0]
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0x30]
cmp rcx, 6
mov byte [rsp + rcx + 0xf7], al
jb 0x7ffbf1cf4b8f
mov eax, 0x2b768c5f
mov r12b, byte [rsp + 0xf9]
lea rbx, [rbp - 1]
mov r13b, byte [rsp + 0xfc]
mov sil, byte [rsp + 0xfa]
mov r11b, byte [rsp + 0xf8]
or r11b, 1
mov r14b, byte [rsp + 0xfd]
or sil, 1
mov byte [rsp + 0xf8], r11b
or r13b, 1
mov byte [rsp + 0xfa], sil
or r14b, 1
test rbx, rbx
mov byte [rsp + 0xfc], r13b
mov byte [rsp + 0xfd], r14b
je 0x7ffbf1cf4d68
lea r10, [rbx + r15]
mov r15, qword [rsp + 0x60]
sub r15, qword [rsp + 0x50]
mov r9b, byte [r10]
test bl, 1
movzx edx, r9b
je 0x7ffbf1cf4cb4
xor r9b, byte [rsp + 0xfb]
movzx r8d, byte [rsp + 0xfb]
and r9b, 1
je 0x7ffbf1cf4c61
movzx ecx, sil
mov eax, r8d
shr eax, 1
shr ecx, 1
xor ecx, eax
mov eax, edx
btc eax, 8
sar eax, 1
xor ecx, eax
jmp 0x7ffbf1cf4c68
mov ecx, edx
xor ecx, r8d
shr ecx, 1
movzx ebp, byte [r10 - 1]
xor ecx, ebp
test cl, 1
je 0x7ffbf1cf4c9c
test r9b, r9b
je 0x7ffbf1cf4c8f
btc edx, 8
shr r8d, 1
movzx ecx, sil
shr ecx, 1
sar edx, 1
xor ecx, r8d
xor ecx, edx
jmp 0x7ffbf1cf4c96
mov ecx, edx
xor ecx, r8d
shr ecx, 1
movzx eax, r14b
jmp 0x7ffbf1cf4d13
test r9b, r9b
je 0x7ffbf1cf4caa
movzx eax, sil
jmp 0x7ffbf1cf4d2a
mov eax, edx
xor eax, r8d
jmp 0x7ffbf1cf4d41
xor r9b, r12b
movzx r8d, r12b
and r9b, 1
je 0x7ffbf1cf4cda
mov eax, r8d
shr eax, 1
movzx ecx, r11b
shr ecx, 1
xor ecx, eax
mov eax, edx
btc eax, 8
sar eax, 1
xor ecx, eax
jmp 0x7ffbf1cf4ce1
mov ecx, r8d
xor ecx, edx
shr ecx, 1
movzx ebp, byte [r10 - 1]
xor ecx, ebp
test cl, 1
je 0x7ffbf1cf4d21
test r9b, r9b
je 0x7ffbf1cf4d08
movzx ecx, r11b
btc edx, 8
shr r8d, 1
shr ecx, 1
sar edx, 1
xor ecx, r8d
xor ecx, edx
jmp 0x7ffbf1cf4d0f
mov ecx, r8d
xor ecx, edx
shr ecx, 1
movzx eax, r13b
shr eax, 1
xor ecx, ebp
btc eax, 7
sar ecx, 1
xor eax, ecx
jmp 0x7ffbf1cf4d47
test r9b, r9b
je 0x7ffbf1cf4d3c
movzx eax, r11b
btc edx, 8
shr eax, 1
shr r8d, 1
sar edx, 1
xor eax, r8d
xor eax, edx
jmp 0x7ffbf1cf4d43
mov eax, r8d
xor eax, edx
shr eax, 1
xor eax, ebp
sar eax, 1
mov byte [r15 + r10], al
xor dil, al
dec r10
sub rbx, 1
jne 0x7ffbf1cf4c21
mov rbp, qword [rsp + 0xf0]
mov r15, qword [rsp + 0x50]
movzx r8d, r12b
movzx ecx, byte [r15]
mov r9b, byte [r15]
xor r9b, r12b
and r9b, 1
je 0x7ffbf1cf4d95
mov eax, r8d
movzx edx, r11b
shr eax, 1
shr edx, 1
xor edx, eax
mov eax, ecx
btc eax, 8
sar eax, 1
xor edx, eax
jmp 0x7ffbf1cf4d9c
mov edx, r8d
xor edx, ecx
shr edx, 1
test dl, 1
je 0x7ffbf1cf4dcf
test r9b, r9b
je 0x7ffbf1cf4dbc
movzx edx, r11b
btc ecx, 8
shr r8d, 1
shr edx, 1
sar ecx, 1
xor edx, r8d
xor edx, ecx
jmp 0x7ffbf1cf4dc3
mov edx, r8d
xor edx, ecx
shr edx, 1
movzx eax, r13b
xor eax, edx
btc eax, 8
jmp 0x7ffbf1cf4df1
test r9b, r9b
je 0x7ffbf1cf4dea
btc ecx, 8
movzx eax, r11b
shr r8d, 1
shr eax, 1
sar ecx, 1
xor eax, r8d
xor eax, ecx
jmp 0x7ffbf1cf4df1
mov eax, r8d
xor eax, ecx
shr eax, 1
mov rsi, 0xfffffffffffff000
mov r12, qword [rsp + 0x60]
sar eax, 1
mov r14, qword [rsp + 0xe8]
mov r13, qword [rsp + 0x80]
mov byte [r12], al
xor dil, al
cmp dil, byte [r15 + rbp + 8]
je 0x7ffbf1cf4edb
call fcn.7ffbf1d47140
mov r10, rax
mov r9d, 0xffff
and r13, 0xfffffffffffffff8
lea r8, [r13 + 0xfff]
mov r11, qword [rsp + 0xe0]
and r8, rsi
lea r12, [fcn.7ffbf1cb7480]
mov qword [r11 + 0x10], r12
mov rcx, qword [0x7ffbf1d6a520]
and r10, rsi
xor edi, edi
imul rcx, rcx, 0x343fd
shl rdi, 0x10
shr r9, 0x10
add rcx, 0x269ec3
mov rax, rcx
shr rax, 0x10
movzx edx, ax
or rdi, rdx
test r9, r9
jne 0x7ffbf1cf4e5c
movabs rax, 0x8000800080008001
mov qword [0x7ffbf1d6a520], rcx
mov qword [r14 + 0x98], r10
mul rdi
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub rdi, rdx
inc rdi
mov qword [r14 + 0xb0], rdi
mov qword [rsp + 0xe0], r9
jmp 0x7ffbf1cf4ed1
mov rax, qword [rsp + 0xe0]
mov qword [r13], rax
add r13, 8
cmp r13, r8
jb 0x7ffbf1cf4ec1
jmp 0x7ffbf1cf4fea
mov rbx, r15
sub rbx, r12
lea r13, [0x7ffbf1ca0000]
mov rax, qword [0x7ffbf1cf0238]
mov rsi, r13
sub rsi, rax
jne 0x7ffbf1cf4f00
test rbx, rbx
je 0x7ffbf1cf4fd7
mov r11, r12
xor edi, edi
lea r14, [0x7ffbf1ca0000]
sub r11, r15
sub r15d, r13d
add ebp, r15d
mov rcx, qword [0x7ffbf1cac1e8]
lea r8d, [rcx - 1]
test r8d, r8d
js 0x7ffbf1cf4f55
lea eax, [rdi + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r9d, dword [r14 + rdx*4 + 0xc1ec]
and r9d, 0xfffffff
cmp r15d, r9d
jae 0x7ffbf1cf4f4b
lea r8d, [rax - 1]
jmp 0x7ffbf1cf4f50
jbe 0x7ffbf1cf4f5a
lea edi, [rax + 1]
cmp r8d, edi
jge 0x7ffbf1cf4f25
movsxd r10, edi
jmp 0x7ffbf1cf4fd0
movsxd r10, eax
jmp 0x7ffbf1cf4fd0
mov edx, dword [r14 + r10*4 + 0xc1ec]
mov eax, edx
and eax, 0xfffffff
cmp eax, ebp
jae 0x7ffbf1cf4fd7
mov r9, rdx
mov edi, edx
sar edx, 0x1e
shl edi, 2
and r9d, 0xfffffff
and edx, 3
sar edi, 0x1e
add r9, r13
xor r8d, r8d
and edi, 3
sub edi, 1
je 0x7ffbf1cf4fac
sub edi, 1
je 0x7ffbf1cf4fa7
cmp edi, 1
jne 0x7ffbf1cf4fb2
mov r8, rsi
jmp 0x7ffbf1cf4fb2
mov r8, rbx
jmp 0x7ffbf1cf4fb2
mov r8, rsi
sub r8, rbx
sub edx, 2
je 0x7ffbf1cf4fc2
cmp edx, 1
jne 0x7ffbf1cf4fcd
add qword [r9 + r11], r8
jmp 0x7ffbf1cf4fc6
add dword [r9 + r11], r8d
mov rcx, qword [0x7ffbf1cac1e8]
inc r10
mov eax, ecx
cmp r10, rax
jb 0x7ffbf1cf4f5f
mov eax, dword [0x7ffbf1cb6330]
mov eax, 0xe331560b
mov r11, qword [rsp + 0xe0]
mov qword [r11 + 0x10], r12
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret