Function at 0x140031ec0
Capabilities:
Access peb ldr_data
Encode data using xor
Execute anti-debugging instructions
Get ntdll base address
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov esi, r9d
mov rbp, r8
mov r15, rdx
cmp byte [rcx + 8], 0
je 0x14003219b
mov r10, qword [0x1401c53f0]
test r10, r10
jne 0x14003215d
xor edi, edi
mov r14d, 0x5abae3ee
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
movups xmm0, xmmword [rax + 0x58]
movd ecx, xmm0
sub cx, 8
test edi, edi
je 0x140031f83
psrldq xmm0, 8
movq r9, xmm0
movzx ecx, cx
shr rcx, 1
lea r11, [r9 + rcx*2]
mov r10d, 0x811c9dc5
cmp r9, r11
je 0x140031f7a
nop
movsx ecx, byte [r9]
mov edx, ecx
sub cl, 0x41
mov r8d, edx
or r8d, 0x20
cmp cl, 0x19
cmova r8d, edx
xor r8d, r10d
imul r10d, r8d, 0x1000193
add r9, 2
cmp r9, r11
jne 0x140031f50
cmp r10d, edi
jne 0x140032100
mov rbx, qword [rax + 0x30]
test rbx, rbx
je 0x140032108
movsxd rcx, dword [rbx + 0x3c]
mov rdx, qword [rcx + rbx + 0x88]
mov r12, rdx
shr r12, 0x20
mov esi, edx
add rsi, rbx
cmp rsi, rbx
je 0x140032100
mov r11d, dword [rsi + 0x18]
test r11d, r11d
je 0x140032100
mov r15d, dword [rsi + 0x20]
dec r11d
lea rcx, [r15 + r11*4]
mov r8d, dword [rcx + rbx]
add r8, rbx
mov r10d, 0x811c9dc5
movzx r9d, byte [r8]
inc r8
test r9b, r9b
je 0x14003200d
movsx ecx, r9b
sub r9b, 0x41
mov edx, ecx
or edx, 0x20
cmp r9b, 0x19
cmova edx, ecx
xor edx, r10d
imul r10d, edx, 0x1000193
movzx r9d, byte [r8]
lea r8, [r8 + 1]
test r9b, r9b
jne 0x140031fe2
cmp r10d, r14d
je 0x14003201f
test r11d, r11d
jne 0x140031fc2
mov rax, qword [rax]
jmp 0x140031f20
mov ecx, dword [rsi + 0x24]
add rcx, rbx
movzx edx, word [rcx + r11*2]
mov ecx, dword [rsi + 0x1c]
add rcx, rbx
mov ecx, dword [rcx + rdx*4]
add rcx, rbx
cmp rcx, rsi
jbe 0x14003210a
lea rax, [r12 + rsi]
cmp rcx, rax
jae 0x14003210a
mov edi, 0x811c9dc5
mov dword [rsp + 0x80], edi
mov r9d, edi
mov dword [rsp + 0x84], edi
movzx r8d, byte [rcx]
cmp r8b, 0x2e
je 0x1400320a0
nop dword [rax]
movsx eax, r8b
sub r8b, 0x41
mov edx, eax
or edx, 0x20
cmp r8b, 0x19
cmova edx, eax
xor edx, edi
imul edi, edx, 0x1000193
inc rcx
movzx r8d, byte [rcx]
cmp r8b, 0x2e
jne 0x140032070
mov dword [rsp + 0x80], edi
inc rcx
movzx r8d, byte [rcx]
test r8b, r8b
je 0x1400320e3
nop dword [rax]
movsx eax, r8b
sub r8b, 0x41
mov edx, eax
or edx, 0x20
cmp r8b, 0x19
cmova edx, eax
xor edx, r9d
imul r9d, edx, 0x1000193
lea rcx, [rcx + 1]
movzx r8d, byte [rcx]
test r8b, r8b
jne 0x1400320b0
mov dword [rsp + 0x84], r9d
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r14, qword [rsp + 0x80]
shr r14, 0x20
mov rax, qword [rax]
jmp 0x140031f20
xor ecx, ecx
mov qword [0x1401c53f0], rcx
rdtsc
shl rdx, 0x20
or rax, rdx
lea rdx, [rax + rax*4]
mov qword [0x1401c53f8], rdx
cmp rdx, rcx
je 0x140032111
mov r10, rdx
xor r10, rcx
mov qword [0x1401c53f0], r10
mov eax, edx
xor eax, 0x5abae3ee
mov dword [0x1401c53e8], eax
mov esi, dword [rsp + 0x98]
mov rbp, qword [rsp + 0x90]
mov r15, qword [rsp + 0x88]
jmp 0x140032164
mov rdx, qword [0x1401c53f8]
xor r10, rdx
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x20], rax
mov r9d, esi
mov r8, rbp
mov rdx, r15
mov rcx, 0xffffffffffffffff
call r10
test eax, eax
setne al
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rdx, qword [0x1401c5120]
add rdx, 0x210
mov qword [rsp + 0x80], rdx
mov rax, qword gs:[0x30]
mov r9d, dword [rax + 0x48]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 4]
cmp r9d, ecx
jne 0x1400321e6
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax]
inc ecx
mov rax, qword [rsp + 0x80]
mov dword [rax], ecx
jmp 0x140032226
mov r8, qword [rsp + 0x80]
mov r10d, 1
mov eax, dword [r8 + 8]
cmp eax, r10d
je 0x14003220a
xor eax, eax
lock cmpxchg dword [r8 + 8], r10d
cmp eax, r10d
jne 0x140032222
mov ecx, dword [rdx + 0xc]
mov eax, dword [rdx + 0xc]
inc eax
mov dword [rdx + 0xc], eax
cmp ecx, 0x1fffffff
jbe 0x14003221e
int3
pause
jmp 0x1400321f4
mov dword [rdx + 4], r9d
mov r10, qword [0x1401c53f0]
test r10, r10
jne 0x14003248c
xor edi, edi
mov r14d, 0x5abae3ee
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop
movups xmm0, xmmword [rax + 0x58]
movd ecx, xmm0
sub cx, 8
test edi, edi
je 0x1400322b3
psrldq xmm0, 8
movq r9, xmm0
movzx ecx, cx
shr rcx, 1
lea r11, [r9 + rcx*2]
mov r10d, 0x811c9dc5
cmp r9, r11
je 0x1400322aa
nop
movsx ecx, byte [r9]
mov edx, ecx
sub cl, 0x41
mov r8d, edx
or r8d, 0x20
cmp cl, 0x19
cmova r8d, edx
xor r8d, r10d
imul r10d, r8d, 0x1000193
add r9, 2
cmp r9, r11
jne 0x140032280
cmp r10d, edi
jne 0x140032426
mov rbx, qword [rax + 0x30]
test rbx, rbx
je 0x14003242e
movsxd rcx, dword [rbx + 0x3c]
mov rdx, qword [rcx + rbx + 0x88]
mov r12, rdx
shr r12, 0x20
mov esi, edx
add rsi, rbx
cmp rsi, rbx
je 0x140032426
mov r11d, dword [rsi + 0x18]
test r11d, r11d
je 0x140032426
mov r15d, dword [rsi + 0x20]
dec r11d
lea rcx, [rbx + r11*4]
mov r8d, dword [rcx + r15]
add r8, rbx
mov r10d, 0x811c9dc5
movzx r9d, byte [r8]
inc r8
test r9b, r9b
je 0x14003233d
movsx ecx, r9b
sub r9b, 0x41
mov edx, ecx
or edx, 0x20
cmp r9b, 0x19
cmova edx, ecx
xor edx, r10d
imul r10d, edx, 0x1000193
movzx r9d, byte [r8]
lea r8, [r8 + 1]
test r9b, r9b
jne 0x140032312
cmp r10d, r14d
je 0x14003234f
test r11d, r11d
jne 0x1400322f2
mov rax, qword [rax]
jmp 0x140032250
mov ecx, dword [rsi + 0x1c]
add rcx, rbx
mov eax, dword [rsi + 0x24]
add rax, rbx
movzx eax, word [rax + r11*2]
mov r8d, dword [rcx + rax*4]
add r8, rbx
cmp r8, rsi
jbe 0x140032431
lea rax, [rsi + r12]
cmp r8, rax
jae 0x140032431
mov edi, 0x811c9dc5
mov dword [rsp + 0x30], edi
mov r9d, edi
mov dword [rsp + 0x34], edi
movzx edx, byte [r8]
cmp dl, 0x2e
je 0x1400323c9
nop word [rax + rax]
movsx eax, dl
sub dl, 0x41
mov ecx, eax
or ecx, 0x20
cmp dl, 0x19
cmova ecx, eax
xor ecx, edi
imul edi, ecx, 0x1000193
inc r8
movzx edx, byte [r8]
cmp dl, 0x2e
jne 0x1400323a0
mov dword [rsp + 0x30], edi
inc r8
movzx edx, byte [r8]
test dl, dl
je 0x14003240c
nop dword [rax]
nop dword [rax + rax]
movsx eax, dl
sub dl, 0x41
mov ecx, eax
or ecx, 0x20
cmp dl, 0x19
cmova ecx, eax
xor ecx, r9d
imul r9d, ecx, 0x1000193
lea r8, [r8 + 1]
movzx edx, byte [r8]
test dl, dl
jne 0x1400323e0
mov dword [rsp + 0x34], r9d
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 0x140032250
xor r8d, r8d
mov qword [0x1401c53f0], r8
nop dword [rax + rax]
rdtsc
shl rdx, 0x20
or rax, rdx
lea rcx, [rax + rax*4]
mov qword [0x1401c53f8], rcx
cmp rcx, r8
je 0x140032440
mov r10, rcx
xor r10, r8
mov qword [0x1401c53f0], r10
mov eax, ecx
xor eax, 0x5abae3ee
mov dword [0x1401c53e8], eax
mov esi, dword [rsp + 0x98]
mov rbp, qword [rsp + 0x90]
mov r15, qword [rsp + 0x88]
jmp 0x140032493
mov rcx, qword [0x1401c53f8]
xor r10, rcx
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x20], rax
mov r9d, esi
mov r8, rbp
mov rdx, r15
mov rcx, qword [0x1401c0e80]
call r10
test eax, eax
setne dl
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400324e1
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax]
dec ecx
mov rax, qword [rsp + 0x80]
mov dword [rax], ecx
jmp 0x1400324fe
mov rcx, qword [rsp + 0x80]
mov dword [rcx + 4], 0
mov dword [rcx + 8], 0
mov dword [rcx + 0xc], 0
movzx eax, dl
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret