Function at 0x140021dc0
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov rax, qword [0x14002c010]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rbx, rdx
mov rbp, rcx
mov qword [rsp + 0x20], rdx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x140021ed4
mov rax, qword [0x14002d298]
test rax, rax
jne 0x140021ec8
mov rax, qword gs:[0x30]
mov rcx, qword [rax + 0x60]
mov rax, qword [rcx + 0x18]
mov r15, qword [rax + 0x10]
movabs r12, 0x7ceeb055148c88c
nop dword [rax + rax]
mov r10, qword [r15 + 0x30]
movsxd rax, dword [r10 + 0x3c]
mov esi, dword [rax + r10 + 0x88]
add rsi, r10
cmp rsi, r10
je 0x140021ea5
xor r9d, r9d
mov r11d, dword [rsi + 0x18]
test r11d, r11d
je 0x140021ea5
mov r14d, dword [rsi + 0x20]
nop dword [rax + rax]
lea rax, [r14 + r9*4]
mov eax, dword [rax + r10]
add rax, r10
xor r8d, r8d
movzx ecx, byte [rax]
test cl, cl
je 0x140021e9d
nop word [rax + rax]
movsx edx, cl
xor rdx, r8
imul r8, rdx, 0x1000193
lea rax, [rax + 1]
movzx ecx, byte [rax]
test cl, cl
jne 0x140021e80
cmp r8, r12
je 0x140021eaa
inc r9d
cmp r9d, r11d
jb 0x140021e60
mov r15, qword [r15]
jmp 0x140021e30
mov ecx, dword [rsi + 0x1c]
add rcx, r10
mov eax, dword [rsi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov eax, dword [rcx + rax*4]
add rax, r10
mov qword [0x14002d298], rax
mov ecx, 0x84
call rax
jmp 0x140021fbe
mov r8, qword [0x14002d190]
test r8, r8
jne 0x140021fad
mov rax, qword gs:[0x30]
mov rcx, qword [rax + 0x60]
mov rax, qword [rcx + 0x18]
mov r15, qword [rax + 0x10]
movabs r12, 0x1ffe0fc301d1e34a
nop dword [rax]
nop word [rax + rax]
mov r10, qword [r15 + 0x30]
movsxd rax, dword [r10 + 0x3c]
mov esi, dword [rax + r10 + 0x88]
add rsi, r10
cmp rsi, r10
je 0x140021f85
xor r9d, r9d
mov r11d, dword [rsi + 0x18]
test r11d, r11d
je 0x140021f85
mov r14d, dword [rsi + 0x20]
nop dword [rax + rax]
lea rax, [r14 + r9*4]
mov edx, dword [rax + r10]
add rdx, r10
xor r8d, r8d
movzx eax, byte [rdx]
test al, al
je 0x140021f7d
nop word [rax + rax]
movsx ecx, al
xor rcx, r8
imul r8, rcx, 0x1000193
lea rdx, [rdx + 1]
movzx eax, byte [rdx]
test al, al
jne 0x140021f60
cmp r8, r12
je 0x140021f8a
inc r9d
cmp r9d, r11d
jb 0x140021f40
mov r15, qword [r15]
jmp 0x140021f10
mov ecx, dword [rsi + 0x1c]
add rcx, r10
mov eax, dword [rsi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov r8d, dword [rcx + rax*4]
add r8, r10
mov qword [0x14002d190], r8
mov rcx, qword [rbp]
mov rax, qword [rbp + 8]
inc rax
imul rdx, rax, 0x84
call r8
mov rcx, rax
mov qword [rbp], rax
imul rdx, qword [rbp + 8], 0x84
add rdx, rax
xor ecx, ecx
lea r8, [rdx + 0x83]
lea rax, [rbx + 0x83]
cmp rdx, rax
ja 0x140022007
cmp r8, rbx
jb 0x140022007
mov r8, rbx
sub r8, rdx
movzx eax, byte [r8 + rdx]
mov byte [rdx], al
inc ecx
lea rdx, [rdx + 1]
cmp ecx, 0x84
jb 0x140021ff0
jmp 0x14002205b
movups xmm0, xmmword [rbx]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rdx + 0x10], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rdx + 0x20], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rdx + 0x30], xmm1
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rdx + 0x40], xmm0
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rdx + 0x50], xmm1
movups xmm0, xmmword [rbx + 0x60]
movups xmmword [rdx + 0x60], xmm0
movups xmm1, xmmword [rbx + 0x70]
movups xmmword [rdx + 0x70], xmm1
mov eax, dword [rbx + 0x80]
mov dword [rdx + 0x80], eax
inc ecx
cmp ecx, 0x84
jb 0x140022051
inc qword [rbp + 8]
mov qword [rbx], 0
mov qword [rbx + 8], 0
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0
mov qword [rbx + 0x20], 0
mov qword [rbx + 0x28], 0
mov qword [rbx + 0x30], 0
mov qword [rbx + 0x38], 0
mov qword [rbx + 0x40], 0
mov qword [rbx + 0x48], 0
mov qword [rbx + 0x50], 0
mov qword [rbx + 0x58], 0
mov qword [rbx + 0x60], 0
mov qword [rbx + 0x68], 0
mov qword [rbx + 0x70], 0
mov dword [rbx + 0x78], 0
mov qword [rbx + 0x7c], 0
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.140024b00
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret