Function at 0x18001f39c
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
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x20
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
cmp rcx, qword [r8]
je 0x18001f470
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 0x18001f450
mov r10d, dword [r9 + 0x18]
test r10d, r10d
je 0x18001f450
mov r12d, dword [r9 + 0x20]
dec r10d
lea rcx, [r12 + r10*4]
mov r11d, dword [rcx + r8]
add r11, r8
mov r14d, 0x656afca8
mov bpl, byte [r11]
inc r11
test bpl, bpl
je 0x18001f44b
movsx ecx, bpl
sub bpl, 0x41
mov edx, ecx
or edx, 0x20
cmp bpl, 0x19
cmova edx, ecx
xor edx, r14d
imul r14d, edx, 0x1000193
mov bpl, byte [r11]
inc r11
test bpl, bpl
jne 0x18001f419
cmp r14d, 0xfe6ae76a
je 0x18001f455
test r10d, r10d
jne 0x18001f3fa
mov rax, qword [rax]
jmp 0x18001f3d5
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [r9 + 0x24]
add rax, r8
movzx eax, word [rax + r10*2]
mov ecx, dword [rcx + rax*4]
add rcx, r8
call rcx
mov qword [rsi], rbx
and qword [rsi + 8], 0
and qword [rsi + 0x10], 0
movabs rax, 0x8000000000000000
mov qword [rsi + 0x18], rax
mov rdx, qword [rsi]
movzx ecx, byte [rdx]
cmp ecx, 5
ja 0x18001f4c1
je 0x18001f4c1
test ecx, ecx
je 0x18001f4c1
sub ecx, 1
je 0x18001f4b4
sub ecx, 1
jne 0x18001f4c1
mov rax, qword [rdx + 8]
mov rax, qword [rax + 8]
mov qword [rsi + 0x10], rax
jmp 0x18001f4c9
mov rax, qword [rdx + 8]
mov rax, qword [rax]
mov qword [rsi + 8], rax
jmp 0x18001f4c9
mov qword [rsi + 0x18], 1
movzx ecx, byte [rbx]
cmp ecx, 5
ja 0x18001f539
je 0x18001f5fc
test ecx, ecx
je 0x18001f554
sub ecx, 1
je 0x18001f523
sub ecx, 1
jne 0x18001f542
mov rbx, qword [rbx + 8]
mov rdi, qword [rdi + 0x10]
lea rcx, [rdi + 0x10]
mov r8, rdi
mov rdx, qword [rbx + 8]
call fcn.18001d320
mov rdx, qword [rbx + 8]
sub rdx, 0x10
mov qword [rsp + 0x50], rdx
lea rcx, [rdx + 8]
mov dl, byte [rdx]
call fcn.180045b40
add qword [rbx + 8], 0xfffffffffffffff0
mov qword [rsi + 0x10], rdi
jmp 0x18001f6f0
mov rdx, qword [rdi + 8]
mov rcx, qword [rbx + 8]
call fcn.1800449dc
mov qword [rsi + 8], rax
jmp 0x18001f6f0
sub ecx, 6
je 0x18001f5fc
sub ecx, 1
je 0x18001f5fc
cmp ecx, 1
je 0x18001f5fc
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 0x18001f5d7
mov r11d, dword [r9 + 0x18]
test r11d, r11d
je 0x18001f5d7
mov r14d, dword [r9 + 0x20]
dec r11d
lea rcx, [r14 + r11*4]
mov r10d, dword [rcx + r8]
add r10, r8
mov ebp, 0xb8220cec
mov bl, byte [r10]
inc r10
test bl, bl
je 0x18001f5d2
movsx ecx, bl
sub bl, 0x41
mov edx, ecx
or edx, 0x20
cmp bl, 0x19
cmova edx, ecx
xor edx, ebp
imul ebp, edx, 0x1000193
mov bl, byte [r10]
inc r10
test bl, bl
jne 0x18001f5a7
cmp ebp, 0x5ff0a0c6
je 0x18001f5dc
test r11d, r11d
jne 0x18001f58a
mov rax, qword [rax]
jmp 0x18001f565
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + r11*2]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
call rax
jmp 0x18001f6f0
cmp qword [rdi + 0x18], 0
je 0x18001f6b3
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 0x18001f693
mov r11d, dword [r9 + 0x18]
test r11d, r11d
je 0x18001f693
mov r15d, dword [r9 + 0x20]
dec r11d
lea rcx, [r15 + r11*4]
mov r10d, dword [rcx + r8]
add r10, r8
mov r14d, 0xa852386b
mov dil, byte [r10]
inc r10
test dil, dil
je 0x18001f68e
movsx ecx, dil
sub dil, 0x41
mov edx, ecx
or edx, 0x20
cmp dil, 0x19
cmova edx, ecx
xor edx, r14d
imul r14d, edx, 0x1000193
mov dil, byte [r10]
inc r10
test dil, dil
jne 0x18001f65c
cmp r14d, 0xae9793a7
je 0x18001f698
test r11d, r11d
jne 0x18001f63d
mov rax, qword [rax]
jmp 0x18001f618
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + r11*2]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
call rax
cmp byte [rbx], 3
jne 0x18001f6ca
xor edx, edx
mov rcx, qword [rbx + 8]
call fcn.180025788
mov edx, 0x20
jmp 0x18001f6df
cmp byte [rbx], 8
jne 0x18001f6ed
xor edx, edx
mov rcx, qword [rbx + 8]
call fcn.180025804
mov edx, 0x28
mov rcx, qword [rbx + 8]
call fcn.18004bc94
and qword [rbx + 8], 0
mov byte [rbx], 0
mov rax, rsi
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret