Function at 0x7ffbf1d24af0
Capabilities:
Allocate or change rwx memory
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
mov rax, qword [0x7ffbf1d68270]
xor rax, rsp
mov qword [rsp + 0xa0], rax
xor r12d, r12d
mov r15, rcx
mov qword [rsp + 0x90], rcx
mov ecx, r12d
mov dword [rsp + 0x2c], ecx
cmp dword [r15 + 0xc], r12d
jne 0x7ffbf1d252ee
mov r14d, dword [r15 + 0x14]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x40], r12
sub r14d, 1
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x4c], r12d
mov dword [rsp + 0x60], r14d
movsxd rax, r14d
mov dword [rsp + 0x50], r12d
js 0x7ffbf1d252ee
lea rax, [rax + rax*2 + 9]
lea r13, [0x7ffbf1ca0000]
lea rsi, [r15 + rax*4]
mov qword [rsp + 0x78], rsi
mov edi, dword [rsi]
mov ebx, dword [rsi - 8]
movsxd rax, r14d
lea rcx, [rax + rax*2]
and edi, 0xfffffff
and ebx, 0xfffffff
lea rcx, [r15 + rcx*4 + 0x1c]
add rdi, r13
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x88], rdi
mov eax, 0x5e8c0567
mov r13, qword [rsp + 0x38]
cmp rdi, r13
jb 0x7ffbf1d24bd5
mov rdx, qword [rsp + 0x40]
lea rax, [rbx + rdi]
add rdx, r13
cmp rax, rdx
jbe 0x7ffbf1d24c82
cmp dword [rsp + 0x50], r12d
je 0x7ffbf1d24bf9
mov r8d, dword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
lea r9, [rsp + 0x48]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [rsp + 0x50], r12d
cmp dword [rsp + 0x4c], r12d
je 0x7ffbf1d24c12
lea rcx, [0x7ffbf1d69020]
mov dword [rsp + 0x4c], r12d
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rax, [rbx + rdi + 0xfff]
mov rcx, rdi
mov dword [rsp + 0x48], r12d
and rcx, 0xfffffffffffff000
and rax, 0xfffffffffffff000
sub rax, rcx
mov qword [rsp + 0x38], rcx
lea rcx, [0x7ffbf1d69020]
mov qword [rsp + 0x40], rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
lea r9, [rsp + 0x48]
mov r8d, 0x40
mov dword [rsp + 0x4c], 1
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r13, qword [rsp + 0x38]
cmp eax, r12d
je 0x7ffbf1d252a5
mov dword [rsp + 0x50], 1
cmp rdi, r12
je 0x7ffbf1d252a5
bt dword [rsi - 8], 0x1c
jae 0x7ffbf1d2526e
mov ebp, dword [rsi]
mov rdx, qword [r15 + 4]
mov r9, rbx
and ebp, 0xfffffff
and r9d, 7
mov al, r12b
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x58], r9
mov r12, rdi
je 0x7ffbf1d251cc
xor r10d, r10d
mov r12d, ebp
xor ebx, ebx
and dword [rsp + 0x24], r10d
not r12d
mov dword [rsp + 0x28], r10d
test r9d, r9d
jle 0x7ffbf1d24d2b
lea r11d, [r10 + 0x38]
mov r13, rdi
cmp ebx, 4
movzx r8d, byte [r13]
jge 0x7ffbf1d24d05
lea ecx, [r11 - 0x20]
shl r8d, cl
or dword [rsp + 0x24], r8d
jmp 0x7ffbf1d24d0e
mov ecx, r11d
shl r8d, cl
or r10d, r8d
inc ebx
inc r13
sub r11d, 8
cmp ebx, r9d
jl 0x7ffbf1d24ced
mov qword [rsp + 0x68], r13
mov r13, qword [rsp + 0x38]
mov dword [rsp + 0x28], r10d
movzx r10d, word [rsp + 0x9c]
movzx r9d, word [rsp + 0x9a]
movzx r11d, dx
mov ebx, r12d
mov ecx, r12d
shr ecx, 3
sub ebx, r11d
rol ebx, 5
imul ebx, r10d
xor ebx, ecx
xor ebx, ebp
mov ebp, dword [rsp + 0x9c]
mov r8d, ebp
mov ecx, ebx
sub r8d, ebx
ror r8d, 0x10
imul r8d, r9d
rol ecx, 8
xor r8d, ecx
xor r12d, r8d
mov r8d, r12d
mov ecx, r12d
sub r8d, ebp
ror r8d, 6
imul r8d, r11d
ror ecx, 2
xor r8d, ecx
movzx ecx, word [rsp + 0x9e]
xor ebx, r8d
mov r8d, ebx
not r8d
ror r8d, 9
add r8d, ecx
imul r8d, r9d
xor r12d, r8d
mov r8d, edx
xor r8d, r12d
mov ecx, r12d
ror r8d, 3
imul r8d, r10d
ror ecx, 4
add r8d, ecx
xor ebx, r8d
mov r8d, r10d
xor r8d, ebx
mov ecx, ebx
shr ecx, 0xb
imul r8d, r9d
xor r8d, ecx
xor r12d, r8d
mov r8d, ebp
mov ebp, edx
xor ebp, dword [rsp + 0x9c]
xor r8d, r12d
mov ecx, r12d
rol r8d, 6
shr ecx, 3
xor ebp, r12d
imul r8d, r11d
sub r8d, ecx
xor ebx, r8d
mov r8d, r11d
xor ebp, ebx
xor r8d, ebp
mov ecx, ebp
rol r8d, 7
imul r8d, r10d
mov r10d, dword [rsp + 0x9c]
ror ecx, 7
xor r8d, ecx
xor ebx, r8d
mov ecx, ebx
lea r8d, [r10 + rbx]
rol r8d, 9
imul r8d, r9d
ror ecx, 9
sub r8d, ecx
xor ebp, r8d
mov r8d, r10d
xor r8d, ebp
ror r8d, 8
imul r8d, r11d
mov ecx, ebp
xor ebp, dword [rsp + 0x28]
ror ecx, 1
xor r11d, r11d
mov r9d, ebp
xor r8d, ecx
mov rcx, qword [rsp + 0x58]
xor r8d, dword [rsp + 0x24]
xor ebx, r8d
mov r8d, ebx
test ecx, ecx
jle 0x7ffbf1d24ea2
mov r10, rdi
cmp r11d, 4
jge 0x7ffbf1d24e88
rol r8d, 8
mov byte [r10], r8b
inc r10
xor al, r8b
jmp 0x7ffbf1d24e95
rol r9d, 8
mov byte [r10], r9b
inc r10
xor al, r9b
inc r11d
cmp r11d, ecx
jl 0x7ffbf1d24e73
mov qword [rsp + 0x30], r10
lea r8d, [rcx - 4]
test r8d, r8d
jle 0x7ffbf1d251ae
mov ecx, 4
sub ecx, r8d
shl ecx, 3
shr ebp, cl
shl ebp, cl
mov r12, qword [rsp + 0x30]
mov r11, qword [rsp + 0x70]
mov rcx, r11
shr rcx, 3
mov qword [rsp + 0x80], rcx
test rcx, rcx
je 0x7ffbf1d25135
mov ecx, dword [rsp + 0x9c]
mov r13, qword [rsp + 0x68]
mov r11d, dword [rsp + 0x28]
mov r15d, dword [rsp + 0x9c]
mov r14, qword [rsp + 0x80]
mov esi, dword [rsp + 0x24]
mov r8d, edx
xor r8d, ecx
movzx ecx, cx
mov dword [rsp + 0x58], ecx
movzx ecx, dx
mov edi, r8d
mov dword [rsp + 0x20], ecx
movzx ecx, byte [r13 + 1]
movzx r10d, byte [r13]
movzx r9d, byte [r13 + 4]
shl r10d, 8
shl r9d, 8
add r13, 8
or r10d, ecx
movzx ecx, byte [r13 - 6]
shl r10d, 8
or r10d, ecx
movzx ecx, byte [r13 - 5]
shl r10d, 8
or r10d, ecx
movzx ecx, byte [r13 - 3]
or r9d, ecx
movzx ecx, byte [r13 - 2]
shl r9d, 8
or r9d, ecx
movzx ecx, byte [r13 - 1]
shl r9d, 8
or r9d, ecx
xor ebp, r9d
mov r8d, ebp
mov ecx, ebp
sub r8d, dword [rsp + 0x20]
shr ecx, 3
rol r8d, 5
imul r8d, dword [rsp + 0x58]
xor r8d, ecx
movzx ecx, word [rsp + 0x9a]
xor r8d, r10d
xor ebx, r8d
mov r8d, r15d
sub r8d, ebx
ror r8d, 0x10
imul r8d, ecx
mov ecx, ebx
rol ecx, 8
xor r8d, ecx
xor ebp, r8d
mov r8d, ebp
mov ecx, ebp
sub r8d, r15d
ror r8d, 6
imul r8d, dword [rsp + 0x20]
ror ecx, 2
xor r8d, ecx
xor ebx, r8d
movzx r8d, word [rsp + 0x9e]
mov ecx, ebx
not ecx
ror ecx, 9
add ecx, r8d
movzx r8d, word [rsp + 0x9a]
imul ecx, r8d
mov r8d, edx
xor ebp, ecx
xor r8d, ebp
mov ecx, ebp
ror r8d, 3
imul r8d, dword [rsp + 0x58]
ror ecx, 4
add r8d, ecx
movzx ecx, word [rsp + 0x9a]
xor ebx, r8d
mov r8d, dword [rsp + 0x58]
xor r8d, ebx
imul r8d, ecx
mov ecx, ebx
shr ecx, 0xb
xor r8d, ecx
xor ebp, r8d
mov r8d, r15d
xor r8d, ebp
mov ecx, ebp
rol r8d, 6
shr ecx, 3
imul r8d, dword [rsp + 0x20]
sub r8d, ecx
xor ebx, r8d
xor ebp, edi
mov r8d, dword [rsp + 0x20]
xor ebp, ebx
xor r8d, ebp
mov ecx, ebp
rol r8d, 7
imul r8d, dword [rsp + 0x58]
ror ecx, 7
xor r8d, ecx
movzx ecx, word [rsp + 0x9a]
xor ebx, r8d
lea r8d, [r15 + rbx]
rol r8d, 9
imul r8d, ecx
mov ecx, ebx
ror ecx, 9
sub r8d, ecx
xor ebp, r8d
mov r8d, r15d
xor r8d, ebp
mov ecx, ebp
xor ebp, r11d
ror r8d, 8
mov byte [r12 + 7], bpl
mov r11d, r9d
imul r8d, dword [rsp + 0x20]
ror ecx, 1
xor r8d, ecx
xor r8d, esi
mov esi, r10d
xor ebx, r8d
xor al, bl
mov byte [r12 + 3], bl
ror ebx, 8
xor al, bpl
ror ebp, 8
mov byte [r12 + 2], bl
xor al, bl
ror ebx, 8
mov byte [r12 + 6], bpl
xor al, bpl
ror ebp, 8
mov byte [r12 + 1], bl
xor al, bl
ror ebx, 8
mov byte [r12 + 5], bpl
xor al, bpl
ror ebp, 8
mov byte [r12], bl
mov cl, bpl
mov byte [r12 + 4], bpl
add r12, 8
xor cl, bl
xor al, cl
ror ebx, 8
ror ebp, 8
sub r14, 1
jne 0x7ffbf1d24f1c
mov rdi, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x78]
mov r13, qword [rsp + 0x38]
mov r14d, dword [rsp + 0x60]
mov r15, qword [rsp + 0x90]
mov r11, qword [rsp + 0x70]
btr dword [rsi - 8], 0x1c
xor r12d, r12d
cmp al, byte [rsi - 4]
jne 0x7ffbf1d2529b
bt dword [rsi], 0x1c
lea r13, [0x7ffbf1ca0000]
jb 0x7ffbf1d25275
mov rax, qword [0x7ffbf1cf0238]
mov rbx, r13
sub rbx, rax
je 0x7ffbf1d25268
mov rcx, qword [0x7ffbf1cac1e8]
sub edi, r13d
mov r8d, r12d
lea r9d, [rcx - 1]
lea ebp, [r11 + rdi]
lea r11, [0x7ffbf1cac1e8]
cmp r9d, r12d
jl 0x7ffbf1d251ec
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r11 + rdx*4 + 4]
and r10d, 0xfffffff
cmp edi, r10d
jae 0x7ffbf1d251e1
lea r9d, [rax - 1]
jmp 0x7ffbf1d251e7
xor ebp, ebp
test r8d, r8d
jns 0x7ffbf1d24ebe
neg r8d
shl r8d, 3
mov ecx, r8d
shr ebx, cl
shl ebx, cl
jmp 0x7ffbf1d24ebe
mov ecx, ebp
mov dword [rsp + 0x24], ebp
xor ebp, ebp
not ecx
xor ebx, ebx
mov dword [rsp + 0x28], ecx
jmp 0x7ffbf1d24ec3
jbe 0x7ffbf1d251f1
lea r8d, [rax + 1]
cmp r9d, r8d
jge 0x7ffbf1d2518b
movsxd r10, r8d
jmp 0x7ffbf1d25261
movsxd r10, eax
jmp 0x7ffbf1d25261
mov edx, dword [r11 + r10*4 + 4]
mov eax, edx
and eax, 0xfffffff
cmp eax, ebp
jae 0x7ffbf1d25268
mov r9, rdx
mov r8d, edx
shl edx, 2
sar edx, 0x1e
and r9d, 0xfffffff
sar r8d, 0x1e
and edx, 3
add r9, r13
and r8d, 3
sub edx, 1
mov r11, r12
je 0x7ffbf1d25239
sub edx, 1
je 0x7ffbf1d2523c
cmp edx, 1
jne 0x7ffbf1d2523c
mov r11, rbx
sub r8d, 2
je 0x7ffbf1d2524d
cmp r8d, 1
jne 0x7ffbf1d25257
add qword [r9], r11
jmp 0x7ffbf1d25250
add dword [r9], r11d
mov rcx, qword [0x7ffbf1cac1e8]
inc r10
lea r11, [0x7ffbf1cac1e8]
mov eax, ecx
cmp r10, rax
jb 0x7ffbf1d251f6
bts dword [rsi], 0x1c
jmp 0x7ffbf1d25275
lea r13, [0x7ffbf1ca0000]
mov eax, 0xdbec2141
dec r14d
sub rsi, 0xc
cmp r14d, r12d
mov dword [rsp + 0x60], r14d
mov qword [rsp + 0x78], rsi
jge 0x7ffbf1d24b84
mov r13, qword [rsp + 0x38]
jmp 0x7ffbf1d252ad
mov dword [rsp + 0x2c], 0x80004005
jmp 0x7ffbf1d252ad
mov dword [rsp + 0x2c], 0x8007000e
cmp dword [rsp + 0x50], r12d
je 0x7ffbf1d252d1
mov r8d, dword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
lea r9, [rsp + 0x48]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [rsp + 0x50], r12d
cmp dword [rsp + 0x4c], r12d
je 0x7ffbf1d252ea
lea rcx, [0x7ffbf1d69020]
mov dword [rsp + 0x4c], r12d
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [rsp + 0x2c]
inc dword [r15 + 0xc]
mov eax, ecx
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.7ffbf1d2cc34
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret