Function at 0x140031b10
Capabilities:
Access peb ldr_data
Encode data using xor
Get ntdll base address
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r13, r9
mov rbx, r8
mov rbp, rdx
cmp byte [rcx + 8], 0
je 0x140031b4d
mov rdi, rdx
mov rsi, rbx
mov rcx, r9
rep movsb byte [rdi], byte [rsi]
jmp 0x140031e9e
mov rdx, qword [0x1401c5120]
add rdx, 0x210
mov qword [rsp + 0x80], rdx
mov rax, qword gs:[0x30]
mov esi, dword [rax + 0x48]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 4]
cmp esi, ecx
jne 0x140031b96
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax]
inc ecx
mov rax, qword [rsp + 0x80]
mov dword [rax], ecx
jmp 0x140031bd4
mov rdi, qword [rsp + 0x80]
mov r8d, 1
mov eax, dword [rdi + 8]
cmp eax, r8d
je 0x140031bb9
xor eax, eax
lock cmpxchg dword [rdi + 8], r8d
cmp eax, r8d
jne 0x140031bd1
mov ecx, dword [rdx + 0xc]
mov eax, dword [rdx + 0xc]
inc eax
mov dword [rdx + 0xc], eax
cmp ecx, 0x1fffffff
jbe 0x140031bcd
int3
pause
jmp 0x140031ba4
mov dword [rdx + 4], esi
xor r15d, r15d
mov qword [rsp + 0x38], r15
mov rdi, qword [0x1401c53b8]
test rdi, rdi
jne 0x140031e45
mov r11d, r15d
mov r14d, 0xfbb9b78a
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
movups xmm0, xmmword [rax + 0x58]
movd ecx, xmm0
sub cx, 8
test r11d, r11d
je 0x140031c6f
psrldq xmm0, 8
movq rsi, xmm0
movzx ecx, cx
shr rcx, 1
lea r9, [rsi + rcx*2]
mov r8d, 0x811c9dc5
cmp rsi, r9
je 0x140031c66
movsx ecx, byte [rsi]
mov edx, ecx
sub cl, 0x41
mov edi, edx
or edi, 0x20
cmp cl, 0x19
cmova edi, edx
xor edi, r8d
imul r8d, edi, 0x1000193
add rsi, 2
cmp rsi, r9
jne 0x140031c40
cmp r8d, r11d
jne 0x140031de6
mov r10, qword [rax + 0x30]
test r10, r10
je 0x140031df3
movsxd rcx, dword [r10 + 0x3c]
mov rdx, qword [rcx + r10 + 0x88]
mov r12, rdx
shr r12, 0x20
mov ebx, edx
add rbx, r10
cmp rbx, r10
je 0x140031de6
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x140031de6
mov r15d, dword [rbx + 0x20]
nop
dec r9d
lea rcx, [r15 + r9*4]
mov edi, dword [rcx + r10]
add rdi, r10
mov r8d, 0x811c9dc5
movzx esi, byte [rdi]
inc rdi
test sil, sil
je 0x140031cfa
nop
movsx ecx, sil
sub sil, 0x41
mov edx, ecx
or edx, 0x20
cmp sil, 0x19
cmova edx, ecx
xor edx, r8d
imul r8d, edx, 0x1000193
movzx esi, byte [rdi]
lea rdi, [rdi + 1]
test sil, sil
jne 0x140031cd0
cmp r8d, r14d
je 0x140031d0c
test r9d, r9d
jne 0x140031cb0
mov rax, qword [rax]
jmp 0x140031c10
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rbx + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov ecx, dword [rcx + rax*4]
add rcx, r10
cmp rcx, rbx
jbe 0x140031dee
lea rax, [r12 + rbx]
cmp rcx, rax
jae 0x140031dee
mov r11d, 0x811c9dc5
mov dword [rsp + 0x30], r11d
mov esi, r11d
mov dword [rsp + 0x34], r11d
movzx edi, byte [rcx]
cmp dil, 0x2e
je 0x140031d8f
nop word [rax + rax]
movsx eax, dil
sub dil, 0x41
mov edx, eax
or edx, 0x20
cmp dil, 0x19
cmova edx, eax
xor edx, r11d
imul r11d, edx, 0x1000193
inc rcx
movzx edi, byte [rcx]
cmp dil, 0x2e
jne 0x140031d60
mov dword [rsp + 0x30], r11d
inc rcx
movzx edi, byte [rcx]
test dil, dil
je 0x140031dcc
nop word [rax + rax]
movsx eax, dil
sub dil, 0x41
mov edx, eax
or edx, 0x20
cmp dil, 0x19
cmova edx, eax
xor edx, esi
imul esi, edx, 0x1000193
lea rcx, [rcx + 1]
movzx edi, byte [rcx]
test dil, dil
jne 0x140031da0
mov dword [rsp + 0x34], esi
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r14, qword [rsp + 0x30]
shr r14, 0x20
mov rax, qword [rax]
jmp 0x140031c10
xor r15d, r15d
jmp 0x140031df9
xor r15d, r15d
mov ecx, r15d
mov qword [0x1401c53b8], rcx
rdtsc
shl rdx, 0x20
or rax, rdx
lea rdx, [rax + rax*4]
mov qword [0x1401c53c0], rdx
cmp rdx, rcx
je 0x140031e00
mov rdi, rdx
xor rdi, rcx
mov qword [0x1401c53b8], rdi
mov eax, edx
xor eax, 0xfbb9b78a
mov dword [0x1401c53b0], eax
mov rbx, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x88]
jmp 0x140031e4c
mov rdx, qword [0x1401c53c0]
xor rdi, rdx
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov r9, r13
mov r8, rbx
mov rdx, rbp
mov rcx, qword [0x1401c0e80]
call rdi
nop
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax]
mov rax, qword [rsp + 0x80]
test ecx, ecx
je 0x140031e92
mov ecx, dword [rax]
dec ecx
mov rax, qword [rsp + 0x80]
mov dword [rax], ecx
jmp 0x140031e9e
mov dword [rax + 4], r15d
mov dword [rax + 8], r15d
mov dword [rax + 0xc], r15d
mov al, 1
mov rbx, qword [rsp + 0x98]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret