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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
movups xmm0, xmmword [str.__W_NKHV]
lea r9, [rsp + 0x38]
movzx ecx, word [0x14002f758]
movsd xmm1, qword [0x14002f750]
mov r12, rax
movups xmmword [rsp + 0x38], xmm0
mov qword [rsp + 0x90], rax
xor r8d, r8d
movsd qword [rsp + 0x48], xmm1
mov word [rsp + 0x50], cx
mov eax, 0x4ec4ec4f
mul r8d
shr edx, 4
movzx eax, dx
imul ecx, eax, 0x34
movzx eax, r8w
inc r8d
sub ax, cx
add ax, 0x33
xor word [r9], ax
lea r9, [r9 + 2]
cmp r8d, 0xd
jl 0x1400168ed
lea rcx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov r13, rax
test rax, rax
je 0x140016dbb
mov rdi, qword [0x14003a168]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x140016dbb
lea rsi, [rbx + 0x10]
cmp qword [rsi + 0x18], 0x10
mov rbp, rsi
jb 0x140016955
mov rbp, qword [rsi]
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r9, qword [rax + 0x30]
movsxd rcx, dword [r9 + 0x3c]
mov r10d, dword [rcx + r9 + 0x88]
add r10, r9
cmp r10, r9
je 0x1400169cc
mov r8d, dword [r10 + 0x18]
test r8d, r8d
je 0x1400169cc
mov r15d, dword [r10 + 0x20]
dec r8d
mov r11d, 0xe65c5486
lea rcx, [r15 + r8*4]
mov edx, dword [rcx + r9]
add rdx, r9
mov cl, byte [rdx]
inc rdx
test cl, cl
je 0x1400169c7
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
inc rdx
test cl, cl
jne 0x1400169a8
cmp r11d, 0xb4ccb9c6
je 0x1400169d1
test r8d, r8d
jne 0x14001698b
mov rax, qword [rax]
jmp 0x140016966
mov ecx, dword [r10 + 0x24]
mov rdx, rbp
add rcx, r9
movzx r8d, word [rcx + r8*2]
mov ecx, dword [r10 + 0x1c]
add rcx, r9
mov eax, dword [rcx + r8*4]
mov rcx, r12
add rax, r9
call rax
mov r14, rax
test rax, rax
je 0x140016ad2
cmp qword [rsi + 0x18], 0x10
mov rbp, rsi
jb 0x140016a0c
mov rbp, qword [rsi]
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
mov r9, qword [rcx + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov r10d, dword [rax + r9 + 0x88]
add r10, r9
cmp r10, r9
je 0x140016a83
mov r8d, dword [r10 + 0x18]
test r8d, r8d
je 0x140016a83
mov r12d, dword [r10 + 0x20]
dec r8d
mov r11d, 0x5f5b1236
lea rax, [r12 + r8*4]
mov edx, dword [rax + r9]
add rdx, r9
mov al, byte [rdx]
inc rdx
test al, al
je 0x140016a7e
movsx eax, al
xor eax, r11d
imul r11d, eax, 0x1000193
mov al, byte [rdx]
inc rdx
test al, al
jne 0x140016a5f
cmp r11d, 0xfd9f036
je 0x140016a88
test r8d, r8d
jne 0x140016a42
mov rcx, qword [rcx]
jmp 0x140016a1d
mov ecx, dword [r10 + 0x24]
mov rdx, rbp
add rcx, r9
movzx r8d, word [rcx + r8*2]
mov ecx, dword [r10 + 0x1c]
add rcx, r9
mov eax, dword [rcx + r8*4]
mov rcx, r13
add rax, r9
call rax
cmp rax, qword [rsi + 0x20]
jne 0x140016ada
cmp rax, r14
jne 0x140016ada
mov ecx, dword [r14]
cmp ecx, dword [rax]
jne 0x140016ada
mov cl, byte [r14 + 4]
cmp cl, byte [rax + 4]
jne 0x140016ada
cmp byte [rax], 0xe9
je 0x140016ada
mov r12, qword [rsp + 0x90]
mov rbx, qword [rbx]
jmp 0x14001693b
cmp byte [0x14002f50d], 0
mov eax, dword [0x14002f508]
movups xmm0, xmmword [0x14002f4f8]
mov dword [rsp + 0x30], eax
movzx eax, word [0x14002f50c]
movups xmmword [rsp + 0x20], xmm0
mov word [rsp + 0x34], ax
je 0x140016b34
xor r8d, r8d
lea r9, [rsp + 0x20]
mov eax, 0x4ec4ec4f
mul r8d
shr edx, 4
movsx eax, dl
imul edx, eax, 0x34
mov al, r8b
inc r8d
sub al, dl
add al, 0x33
xor byte [r9], al
inc r9
cmp r8d, 0x16
jl 0x140016b0d
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [rsp + 0x20]
call fcn.1400251f8
lea rdx, [0x1400259f0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r10d, dword [rcx + r8 + 0x88]
add r10, r8
cmp r10, r8
je 0x140016bcf
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x140016bcf
mov edi, dword [r10 + 0x20]
or esi, 0xffffffff
add r9d, esi
mov r11d, 0xb514b3df
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r8]
add rdx, r8
mov cl, byte [rdx]
inc rdx
test cl, cl
je 0x140016bca
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
inc rdx
test cl, cl
jne 0x140016bab
cmp r11d, 0x7a7a942
je 0x140016bd4
test r9d, r9d
jne 0x140016b8e
mov rax, qword [rax]
jmp 0x140016b66
mov ecx, dword [r10 + 0x24]
add rcx, r8
movzx edx, word [rcx + r9*2]
mov ecx, dword [r10 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
mov ecx, 0xa
add rax, r8
call rax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r10d, dword [rcx + r8 + 0x88]
add r10, r8
cmp r10, r8
je 0x140016c6b
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x140016c6b
mov edi, dword [r10 + 0x20]
add r9d, esi
mov r11d, 0x8c3c55ed
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r8]
add rdx, r8
mov cl, byte [rdx]
inc rdx
test cl, cl
je 0x140016c66
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
inc rdx
test cl, cl
jne 0x140016c47
cmp r11d, 0xd7b5b64d
je 0x140016c70
test r9d, r9d
jne 0x140016c2a
mov rax, qword [rax]
jmp 0x140016c05
mov ecx, dword [r10 + 0x24]
add rcx, r8
movzx edx, word [rcx + r9*2]
mov ecx, dword [r10 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
xor ecx, ecx
add rax, r8
call rax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r9d, dword [rcx + r8 + 0x88]
add r9, r8
cmp r9, r8
je 0x140016d04
mov r10d, dword [r9 + 0x18]
test r10d, r10d
je 0x140016d04
mov edi, dword [r9 + 0x20]
add r10d, esi
mov r11d, 0x5526cb5a
lea rcx, [rdi + r10*4]
mov edx, dword [rcx + r8]
add rdx, r8
mov cl, byte [rdx]
inc rdx
test cl, cl
je 0x140016cff
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
inc rdx
test cl, cl
jne 0x140016ce0
cmp r11d, 0xeb7f3c0c
je 0x140016d09
test r10d, r10d
jne 0x140016cc3
mov rax, qword [rax]
jmp 0x140016c9e
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + r10*2]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
call rax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r9d, dword [rcx + r8 + 0x88]
add r9, r8
cmp r9, r8
je 0x140016d9b
mov r10d, dword [r9 + 0x18]
test r10d, r10d
je 0x140016d9b
mov edi, dword [r9 + 0x20]
add r10d, esi
mov r11d, 0x7e2b200
lea rcx, [rdi + r10*4]
mov edx, dword [rcx + r8]
add rdx, r8
mov cl, byte [rdx]
inc rdx
test cl, cl
je 0x140016d96
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
inc rdx
test cl, cl
jne 0x140016d77
cmp r11d, 0xf4994160
je 0x140016da0
test r10d, r10d
jne 0x140016d5a
mov rax, qword [rax]
jmp 0x140016d35
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + r10*2]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
call rax
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret