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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
push rbp
lea rbp, [rsp - 0x50]
sub rsp, 0x150
mov rax, qword [0x18001f140]
xor rax, rsp
mov qword [rbp + 0x40], rax
movzx eax, byte [0x18001cf88]
movups xmm0, xmmword [0x18001cf00]
movups xmm1, xmmword [0x18001cf10]
movups xmmword [rbp - 0x50], xmm0
movups xmm0, xmmword [0x18001cf20]
movups xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [0x18001cf40]
movups xmmword [rbp - 0x10], xmm0
movups xmm0, xmmword [0x18001cf60]
movups xmmword [rbp - 0x40], xmm1
movups xmm1, xmmword [0x18001cf30]
movups xmmword [rbp + 0x10], xmm0
movsd xmm0, qword [0x18001cf80]
movups xmmword [rbp - 0x20], xmm1
movups xmm1, xmmword [0x18001cf50]
movsd qword [rbp + 0x30], xmm0
movups xmm0, xmmword [0x18001d030]
movups xmmword [rbp], xmm1
movups xmm1, xmmword [0x18001cf70]
movups xmmword [rsp + 0x30], xmm0
movups xmm0, xmmword [0x18001d050]
movups xmmword [rbp + 0x20], xmm1
movups xmm1, xmmword [0x18001d040]
mov byte [rbp + 0x38], al
mov eax, dword [0x18001d0a0]
movups xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [0x18001d070]
movups xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [0x18001d060]
mov dword [rbp - 0x60], eax
movzx eax, word [0x18001d0a4]
movups xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [0x18001d090]
movups xmmword [rsp + 0x60], xmm1
movups xmm1, xmmword [0x18001d080]
mov word [rbp - 0x5c], ax
movzx eax, byte [0x18001d0a6]
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x80], xmm1
mov byte [rbp - 0x5a], al
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x1800164d7
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1800164d7
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x734ec04d
lea rcx, [rbx + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x1800164d2
nop
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x1800164b0
cmp r8d, 0x9264a8e4
je 0x1800164dc
test r9d, r9d
jne 0x180016490
mov rax, qword [rax]
jmp 0x180016460
mov ecx, dword [rdi + 0x24]
xor ebx, ebx
mov r14d, dword [0x18001f188]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov r8d, dword [rcx + rdx*4]
mov ecx, ebx
add r8, r10
cmp r14d, 2
jl 0x1800165fb
movdqa xmm0, xmmword [0x18001d530]
lea rdx, [rsp + 0x34]
movdqa xmm3, xmmword [0x18001d3b0]
movdqa xmm4, xmmword [0x18001d3c0]
movdqa xmmword [rsp + 0x20], xmm0
mov r9d, dword [rsp + 0x20]
xorps xmm0, xmm0
movd xmm1, ecx
pshufd xmm1, xmm1, 0
lea eax, [rcx + 4]
paddd xmm1, xmm3
lea rdx, [rdx + 8]
pcmpgtd xmm0, xmm1
add ecx, 8
andps xmm0, xmm4
paddd xmm0, xmm1
psrad xmm0, 2
pslld xmm0, 2
psubd xmm1, xmm0
pshuflw xmm0, xmm1, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x18001d470]
packuswb xmm2, xmm2
movd xmm0, r9d
movd xmm1, eax
psubb xmm2, xmm0
movd xmm0, dword [rdx - 0xc]
pshufd xmm1, xmm1, 0
xorps xmm2, xmm0
movd dword [rdx - 0xc], xmm2
xorps xmm0, xmm0
paddd xmm1, xmm3
pcmpgtd xmm0, xmm1
andps xmm0, xmm4
paddd xmm0, xmm1
psrad xmm0, 2
pslld xmm0, 2
psubd xmm1, xmm0
pshuflw xmm0, xmm1, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, r9d
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x18001d470]
packuswb xmm2, xmm2
psubb xmm2, xmm0
movd xmm0, dword [rdx - 8]
xorps xmm2, xmm0
movd dword [rdx - 8], xmm2
cmp ecx, 0x70
jl 0x180016531
cmp ecx, 0x77
jge 0x180016624
movsxd rax, ecx
lea rdx, [rsp + 0x30]
add rdx, rax
mov eax, ecx
and eax, 0x80000003
jge 0x180016616
dec eax
or eax, 0xfffffffc
inc eax
sub al, 0x77
inc ecx
xor byte [rdx], al
inc rdx
cmp ecx, 0x77
jl 0x180016606
lea rcx, [rsp + 0x30]
call r8
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov esi, dword [rcx + r10 + 0x88]
add rsi, r10
cmp rsi, r10
je 0x1800166b7
mov r9d, dword [rsi + 0x18]
test r9d, r9d
je 0x1800166b7
mov edi, dword [rsi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x6e4c79d7
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x1800166b2
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x180016690
cmp r8d, 0x5425be56
je 0x1800166bc
test r9d, r9d
jne 0x180016670
mov rax, qword [rax]
jmp 0x180016640
mov ecx, dword [rsi + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rsi + 0x1c]
add rcx, r10
mov r8d, dword [rcx + rdx*4]
add r8, r10
cmp byte [rbp + 0x38], bl
je 0x180016811
cmp r14d, 2
jl 0x1800167de
movdqa xmm0, xmmword [0x18001d530]
lea rcx, [rbp - 0x4c]
movdqa xmm3, xmmword [0x18001d3b0]
movdqa xmm4, xmmword [0x18001d3c0]
movdqa xmmword [rsp + 0x20], xmm0
mov edx, dword [rsp + 0x20]
nop dword [rax]
xorps xmm0, xmm0
movd xmm1, ebx
pshufd xmm1, xmm1, 0
lea eax, [rbx + 4]
paddd xmm1, xmm3
lea rcx, [rcx + 8]
pcmpgtd xmm0, xmm1
add ebx, 8
andps xmm0, xmm4
paddd xmm0, xmm1
psrad xmm0, 2
pslld xmm0, 2
psubd xmm1, xmm0
pshuflw xmm0, xmm1, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x18001d470]
packuswb xmm2, xmm2
movd xmm0, edx
movd xmm1, eax
psubb xmm2, xmm0
movd xmm0, dword [rcx - 0xc]
pshufd xmm1, xmm1, 0
xorps xmm2, xmm0
movd dword [rcx - 0xc], xmm2
xorps xmm0, xmm0
paddd xmm1, xmm3
pcmpgtd xmm0, xmm1
andps xmm0, xmm4
paddd xmm0, xmm1
psrad xmm0, 2
pslld xmm0, 2
psubd xmm1, xmm0
pshuflw xmm0, xmm1, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, edx
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x18001d470]
packuswb xmm2, xmm2
psubb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp ebx, 0x88
jl 0x180016710
cmp ebx, 0x89
jge 0x180016811
movsxd rax, ebx
lea rcx, [rbp - 0x50]
add rcx, rax
nop dword [rax + rax]
mov eax, ebx
and eax, 0x80000003
jge 0x180016800
dec eax
or eax, 0xfffffffc
inc eax
sub al, 0x77
inc ebx
xor byte [rcx], al
inc rcx
cmp ebx, 0x89
jl 0x1800167f0
lea rcx, [rbp - 0x50]
call r8
mov al, 1
mov rcx, qword [rbp + 0x40]
xor rcx, rsp
call fcn.180018790
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret