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

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x30
mov rdi, rdx
mov ebx, r9d
mov rdx, r8
call fcn.18003ebc0
cmp dword [rsp + 0x90], 0
mov r15, rax
mov qword [rsp + 0x20], rax
jne 0x18003f1b1
mov r12, qword [0x1800e6378]
test r12, r12
jne 0x18003f162
mov rcx, qword gs:[0x60]
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdx + 0x10]
mov rbp, qword [rcx]
mov rsi, rbp
nop dword [rax]
nop word [rax + rax]
mov r11, qword [rsi + 0x30]
movsxd rax, dword [r11 + 0x3c]
mov edi, dword [rax + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x18003f136
mov r10d, dword [rdi + 0x18]
test r10d, r10d
je 0x18003f136
mov r14d, dword [rdi + 0x20]
nop word [rax + rax]
dec r10d
mov r9d, 0x9e6d6b60
lea rax, [r14 + r10*4]
mov r8d, dword [rax + r11]
add r8, r11
movzx edx, byte [r8]
inc r8
test dl, dl
je 0x18003f131
nop
movsx eax, dl
lea r8, [r8 + 1]
sub dl, 0x41
mov ecx, eax
or ecx, 0x20
cmp dl, 0x19
movzx edx, byte [r8 - 1]
cmova ecx, eax
xor ecx, r9d
imul r9d, ecx, 0x1000193
test dl, dl
jne 0x18003f100
cmp r9d, 0xc831a847
je 0x18003f197
test r10d, r10d
jne 0x18003f0e0
mov rax, qword [rsi]
mov rsi, rax
cmp rax, rbp
je 0x18003f14c
cmp qword [rax + 0x30], 0
jne 0x18003f0b0
xor r12d, r12d
mov ebx, dword [rsp + 0x88]
mov rdi, qword [rsp + 0x78]
mov qword [0x1800e6378], r12
mov qword gs:[0x130], r12
mov r8d, ebx
mov rax, qword [0x1800c1210]
mov rdx, rdi
mov rcx, r15
mov qword gs:[0x128], rax
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp fcn.1800bfb20
mov ecx, dword [rdi + 0x24]
add rcx, r11
movzx edx, word [rcx + r10*2]
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov r12d, dword [rcx + rdx*4]
add r12, r11
jmp 0x18003f14f
xor r12d, r12d
mov qword [rsp + 0x70], r13
mov r13d, r12d
mov qword [rsp + 0x28], r12
jmp 0x18003f1d0
mov r15, qword [rsp + 0x20]
nop dword [rax + rax]
mov rax, qword [0x1800e63a0]
test rax, rax
jne 0x18003f2b3
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rbp, qword [rax]
mov rsi, rbp
nop word [rax + rax]
mov r11, qword [rsi + 0x30]
movsxd rax, dword [r11 + 0x3c]
mov edi, dword [rax + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x18003f288
mov r10d, dword [rdi + 0x18]
test r10d, r10d
je 0x18003f288
mov r14d, dword [rdi + 0x20]
nop word [rax + rax]
dec r10d
mov r9d, 0xec20179b
lea rax, [r14 + r10*4]
mov r8d, dword [rax + r11]
add r8, r11
movzx eax, byte [r8]
inc r8
test al, al
je 0x18003f283
nop
movsx ecx, al
lea r8, [r8 + 1]
sub al, 0x41
mov edx, ecx
or edx, 0x20
cmp al, 0x19
movzx eax, byte [r8 - 1]
cmova edx, ecx
xor edx, r9d
imul r9d, edx, 0x1000193
test al, al
jne 0x18003f250
cmp r9d, 0x95f853a0
je 0x18003f438
test r10d, r10d
jne 0x18003f230
mov rax, qword [rsi]
mov rsi, rax
cmp rax, rbp
je 0x18003f29d
cmp qword [rax + 0x30], r12
jne 0x18003f200
mov rax, r12
mov ebx, dword [rsp + 0x88]
mov rdi, qword [rsp + 0x78]
mov qword [0x1800e63a0], rax
mov qword gs:[0x130], rax
lea rdx, [rsp + 0x28]
mov rax, qword [0x1800c1210]
mov rcx, r15
mov qword gs:[0x128], rax
call fcn.1800bfb20
mov r15, rax
test rax, rax
je 0x18003f473
mov rcx, qword [rax + 0x18]
mov r9, rdi
sub r9, rcx
nop
movzx r8d, byte [rcx]
movzx edx, byte [rcx + r9]
sub r8d, edx
jne 0x18003f305
inc rcx
test edx, edx
jne 0x18003f2f0
test r8d, r8d
je 0x18003f1c3
cmp ebx, 0xffffffff
jle 0x18003f426
mov rax, qword [0x1800e6398]
test rax, rax
jne 0x18003f3f9
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rbp, qword [rax]
mov rsi, rbp
nop
mov r11, qword [rsi + 0x30]
movsxd rax, dword [r11 + 0x3c]
mov edi, dword [rax + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x18003f3ce
mov r10d, dword [rdi + 0x18]
test r10d, r10d
je 0x18003f3ce
mov r14d, dword [rdi + 0x20]
nop word [rax + rax]
dec r10d
mov r9d, 0x27a8ca94
lea rax, [r14 + r10*4]
mov edx, dword [rax + r11]
add rdx, r11
movzx r8d, byte [rdx]
inc rdx
test r8b, r8b
je 0x18003f3c9
movsx eax, r8b
lea rdx, [rdx + 1]
sub r8b, 0x41
mov ecx, eax
or ecx, 0x20
cmp r8b, 0x19
movzx r8d, byte [rdx - 1]
cmova ecx, eax
xor ecx, r9d
imul r9d, ecx, 0x1000193
test r8b, r8b
jne 0x18003f390
cmp r9d, 0x1529e513
je 0x18003f454
test r10d, r10d
jne 0x18003f370
mov rax, qword [rsi]
mov rsi, rax
cmp rax, rbp
je 0x18003f3e3
cmp qword [rax + 0x30], r12
jne 0x18003f340
mov rax, r12
mov ebx, dword [rsp + 0x88]
mov rdi, qword [rsp + 0x78]
mov qword [0x1800e6398], rax
mov qword gs:[0x130], rax
mov rcx, r15
mov rax, qword [0x1800c1210]
mov qword gs:[0x128], rax
call fcn.1800bfb20
test eax, eax
js 0x18003f426
cmp eax, ebx
jne 0x18003f1c3
cmp r13d, dword [rsp + 0x90]
jge 0x18003f470
inc r13d
jmp 0x18003f1c3
mov ecx, dword [rdi + 0x24]
add rcx, r11
movzx edx, word [rcx + r10*2]
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rcx + rdx*4]
add rax, r11
jmp 0x18003f2a0
mov ecx, dword [rdi + 0x24]
add rcx, r11
movzx edx, word [rcx + r10*2]
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rcx + rdx*4]
add rax, r11
jmp 0x18003f3e6
mov rax, r15
mov r13, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret