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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
mov rax, qword [0x1003fe1f8]
xor rax, rsp
mov qword [rsp + 0xa8], rax
mov r12d, 0x8000
mov r14d, 0xfffffff
mov r15d, 0x269ec3
mov r13, qword [rcx + 0x10]
lea r11, [0x100000000]
mov eax, dword [0x100015b94]
mov qword [rsp + 0x78], rdx
mov edx, dword [r13 + 1]
mov qword [rsp + 0x90], rcx
shr rdx, 1
mov rcx, rax
and rdx, r14
lea rsi, [rax + rdx - 1]
xor edx, edx
mov rax, rsi
div rcx
sub rsi, rdx
mov eax, dword [0x100015b94]
mov eax, dword [0x100015b94]
mov eax, dword [0x10028bffc]
mov r10d, dword [0x10028bffc]
test eax, eax
je 0x10005e670
xor r8d, r8d
mov edi, dword [0x10028bffc]
xor eax, eax
dec edi
inc rdi
mov r9, rdi
je 0x10005e62a
mov rcx, qword [0x1003feeb8]
imul rcx, rcx, 0x343fd
shl rax, 0x10
shr r9, 0x10
add rcx, r15
mov rdx, rcx
shr rdx, 0x10
movzx edx, dx
or rax, rdx
test r9, r9
jne 0x10005e5ff
mov qword [0x1003feeb8], rcx
xor edx, edx
div rdi
test r10, r10
je 0x10005e665
mov ecx, 0xffff10f4
mov eax, 0xef0b
inc r8
lock cmpxchg dword [r11 + rdx*4 + 0x41a130], ecx
je 0x10005e8df
mov ecx, dword [0x10028bffc]
lea rax, [rdx + 1]
xor edx, edx
div rcx
cmp r8, r10
jb 0x10005e634
xor ebx, ebx
test rbx, rbx
jne 0x10005e791
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor edi, edi
mov ebp, eax
mov rcx, qword [0x10041aa98]
mov r9, rcx
inc rdi
xor eax, eax
test rcx, rcx
mov r8, rcx
je 0x10005e6c3
mov rcx, qword [0x1003feeb8]
imul rcx, rcx, 0x343fd
shl rax, 0x10
shr r9, 0x10
add rcx, r15
mov rdx, rcx
shr rdx, 0x10
movzx edx, dx
or rax, rdx
test r9, r9
jne 0x10005e698
mov qword [0x1003feeb8], rcx
mov r9d, 0x40
xor edx, edx
div r8
mov r8d, 0x3000
mov rcx, rdx
mov rdx, rsi
shl rcx, 0x10
add rcx, qword [0x10041cce0]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
mov rbx, rax
je 0x10005e72b
mov rcx, rax
lea r9, [0x100363f08]
mov r8d, esi
and qword [rsp + 0x28], 0
mov rdx, rax
and qword [rsp + 0x20], 0
or rcx, 3
call qword [sym.imp.ntdll.dll_RtlInstallFunctionTableCallback]
test al, al
jne 0x10005e73f
mov r8d, r12d
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp rdi, 0x11
jb 0x10005e67a
xor ebx, ebx
cmp rbx, 0x10000
jb 0x10005e74d
test bl, 3
je 0x10005e76f
test rbx, rbx
je 0x10005e76d
mov rcx, rbx
or rcx, 3
call qword [sym.imp.ntdll.dll_RtlDeleteFunctionTable]
mov r8d, r12d
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor ebx, ebx
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
test rbx, rbx
lea r11, [0x100000000]
je 0x10005e5c8
mov rcx, rsi
mov rdi, rbx
xor eax, eax
rep stosb byte [rdi], al
mov eax, 0x7946b75a
mov edx, dword [r13 + 5]
mov r8d, dword [0x100015b94]
and edx, 7
lea r12, [rdx + r13 + 9]
mov esi, r12d
lea rbp, [0x100000000]
xor eax, eax
mov r13d, dword [r13 + 1]
mov qword [rsp + 0x88], r12
shr r13, 1
and r13, r14
mov qword [rsp + 0x98], r13
sub esi, ebp
sub r8, r13
inc r8
mov dword [rsp + 0x40], esi
mov rdi, r8
je 0x10005e812
mov rcx, qword [0x1003feeb8]
imul rcx, rcx, 0x343fd
shl rax, 0x10
shr rdi, 0x10
add rcx, r15
mov rdx, rcx
shr rdx, 0x10
movzx edx, dx
or rax, rdx
test rdi, rdi
jne 0x10005e7e7
mov qword [0x1003feeb8], rcx
mov ecx, esi
xor edx, edx
div r8
add rbx, rdx
mov rdx, r13
mov r8, rbx
mov qword [rsp + 0x80], rbx
mov eax, 0x78c9d6be
xor dil, dil
mov rdx, qword [r13 + r12]
mov qword [rsp + 0x70], rdx
lea rcx, [rsp + 0x70]
mov eax, 0x7ce48c81
mov rax, qword [0x10014d838]
mov rcx, rbp
mov r10, qword [rsp + 0x70]
mov r15d, 4
mov r9d, dword [rsp + 0x74]
and qword [rsp + 0x48], 0
and r10, r14
and r9, r14
add r10, rbp
sub rcx, rax
mov qword [rsp + 0x50], rcx
jne 0x10005e8f6
xor r11d, r11d
test r9, r9
je 0x10005ebc6
mov r8d, dword [rsp + 0x48]
mov edx, dword [rsp + 0x4c]
mov ebp, 0xb0053e08
movzx ecx, byte [r10 + r11]
inc r11
sub ecx, 0x4ffac1f8
add r8d, ecx
add ecx, edx
mov eax, ecx
imul eax, eax, 0xf80c
rol eax, 8
ror ecx, 8
xor eax, ecx
imul rax, rbp
mov qword [rsp + 0x38], rax
mov edx, dword [rsp + 0x38]
shr rax, 0x20
add edx, eax
add r8d, edx
cmp r11, r9
jb 0x10005e893
mov dword [rsp + 0x4c], edx
mov dword [rsp + 0x48], r8d
jmp 0x10005ebc6
mov ecx, dword [0x100015b94]
imul rcx, rdx
lea rbx, [rcx + r11 + 0x3df000]
jmp 0x10005e667
movsxd rcx, dword [0x10000003c]
lea rax, [r10 + r9]
mov r8d, dword [rcx + rbp + 0xb0]
mov ecx, dword [rcx + rbp + 0xb4]
add r8, rbp
mov qword [rsp + 0x60], rax
mov eax, r10d
sub eax, ebp
mov r11d, eax
mov esi, eax
lea r14, [rax + r9]
mov rbp, r14
and r11, 0xfffffffffffff000
sub rsi, r11
and rbp, 0xfffffffffffff000
sub r14, rbp
add rcx, r8
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x68], r14
jmp 0x10005e95b
mov eax, dword [r8]
cmp rax, r11
jae 0x10005e960
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10005e94c
xor ebx, ebx
cmp r8, rcx
je 0x10005e99e
mov eax, dword [r8]
cmp rax, r11
jne 0x10005e99e
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x10005e999
lea rdx, [r8 + 8]