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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rax - 0x138]
sub rsp, 0x220
movaps xmmword [rax - 0x28], xmm6
mov rax, qword [0x180037060]
xor rax, rsp
mov qword [rbp + 0x108], rax
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp - 0x70]
call fcn.180009220
mov rax, qword [0x1800325c0]
mov qword [rbp + 0xa0], rax
mov r14d, 4
xor r12d, r12d
cmp byte [0x1800325c7], r12b
je 0x1800023b2
mov r8d, r12d
cmp dword [0x180037070], 2
jl 0x18000236c
movdqa xmm4, xmmword [0x180032620]
movd xmm6, r14d
mov eax, 0x1f
movd xmm5, eax
movdqa xmm2, xmmword [0x1800325d0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1800325f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180032600]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.8888888888888888]
movd xmm0, dword [rbp + 0xa0]
pxor xmm2, xmm0
movd dword [rbp + 0xa0], xmm2
movdqa xmm3, xmmword [0x1800325e0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1800325f0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180032600]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.8888888888888888]
movd xmm0, dword [rbp + 0xa4]
pxor xmm2, xmm0
movd dword [rbp + 0xa4], xmm2
jmp 0x1800023b2
lea r9, [rbp + 0xa0]
nop dword [rax]
nop word [rax + rax]
mov eax, 0x2f684bdb
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x36
movzx eax, r8b
sub al, cl
add al, 0x38
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 8
jl 0x180002380
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x70]
call fcn.180003c10
nop
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
test byte [rbp + rcx - 0x60], 6
jne 0x180002c1c
mov r8d, 2
lea rcx, [rbp - 0x70]
call fcn.180003ec0
lea rax, [rbp - 0x70]
mov qword [rsp + 0x40], rax
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx - 0x28]
test rcx, rcx
je 0x180002407
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [rbp - 0x70]
call fcn.1800047c0
mov byte [rsp + 0x48], al
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
test byte [rbp + rcx - 0x60], 6
jne 0x180002456
mov rcx, qword [rbp + rcx - 0x28]
mov rax, qword [rcx]
mov dword [rsp + 0x20], 1
mov r9d, 1
xor r8d, r8d
lea rdx, [rbp + 0xf0]
call qword [rax + 0x50]
nop
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx - 0x28]
jmp 0x180002474
mov qword [rbp + 0xf0], 0xffffffffffffffff
xorps xmm0, xmm0
movups xmmword [rbp + 0xf8], xmm0
movsxd rax, dword [rax + 4]
mov rcx, qword [rbp + rax - 0x28]
test rcx, rcx
je 0x180002480
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
xor r8d, r8d
lea rcx, [rbp - 0x70]
call fcn.180003ec0
xorps xmm0, xmm0
mov rax, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0xf0]
lea rdi, [rax + rcx]
movdqu xmmword [rbp + 0xc0], xmm0
mov qword [rbp + 0xd0], r12
test rdi, rdi
je 0x18000253d
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
ja 0x180002cc5
cmp rdi, 0x1000
jb 0x180002501
lea rcx, [rdi + 0x27]
cmp rcx, rdi
jbe 0x180002ccb
call fcn.180006b7c
mov rcx, rax
test rax, rax
je 0x180002cbf
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x180002509
mov rcx, rdi
call fcn.180006b7c
mov qword [rbp + 0xc0], rax
lea rbx, [rax + rdi]
mov qword [rbp + 0xd0], rbx
mov r8, rdi
xor edx, edx
mov rcx, rax
call fcn.180009220
mov qword [rbp + 0xc8], rbx
mov rax, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0xf0]
lea r8, [rax + rcx]
mov rdx, qword [rbp + 0xc0]
lea rcx, [rbp - 0x70]
call fcn.180004000
lea rcx, [rbp - 0x60]
call fcn.180004600
test rax, rax
jne 0x18000257c
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x70]
add rcx, rax
mov edx, dword [rcx + 0x10]
or edx, 2
xor r8d, r8d
call fcn.180004700
xorps xmm0, xmm0
mov dword [rsp + 0x40], 0x5d8e0557
mov dword [rsp + 0x44], 0xdf7b50b4
mov dword [rsp + 0x48], 0x92783328
mov dword [rsp + 0x4c], 0x8821ed20
movdqu xmmword [rbp + 0xa8], xmm0
mov qword [rbp + 0xb8], r12
mov ecx, 0x10
call fcn.180006b7c
mov qword [rbp + 0xa8], rax
mov qword [rbp + 0xb0], rax
lea rsi, [rax + 0x10]
mov qword [rbp + 0xb8], rsi
mov r8d, 0x10
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.180008ad0
mov qword [rbp + 0xb0], rsi
mov dword [rbp + 0xa0], r14d
mov dword [rbp + 0xa4], 0xa
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xd8], xmm0
mov qword [rbp + 0xe8], rax
lea rax, [rsp + 0x50]
mov qword [rbp - 0x80], rax
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], r12
mov r14, qword [rbp + 0xa8]
cmp r14, rsi
je 0x1800026a9
mov rdi, rsi
sub rdi, r14
cmp rdi, 0x1000
jb 0x180002667
lea rcx, [rdi + 0x27]
cmp rcx, rdi
jbe 0x180002cd1
call fcn.180006b7c
test rax, rax
je 0x180002cd7
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x18000267c
test rdi, rdi
je 0x180002679
mov rcx, rdi
call fcn.180006b7c
mov rbx, rax
jmp 0x18000267c
mov rbx, r12
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbx
lea rax, [rbx + rdi]
mov qword [rsp + 0x60], rax
mov r8, rdi
mov rdx, r14
mov rcx, rbx
call fcn.180008ad0
sub rsi, r14
lea rax, [rsi + rbx]
mov qword [rsp + 0x58], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], r12
mov rsi, qword [rbp + 0xc0]
mov r14, qword [rbp + 0xc8]
cmp rsi, r14
je 0x180002744
mov rdi, r14
sub rdi, rsi
cmp rdi, 0x1000
jb 0x180002702
lea rcx, [rdi + 0x27]
cmp rcx, rdi
jbe 0x180002cdd
call fcn.180006b7c
test rax, rax
je 0x180002ce3
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x180002717
test rdi, rdi
je 0x180002714
mov rcx, rdi
call fcn.180006b7c
mov rbx, rax
jmp 0x180002717
mov rbx, r12
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rbx
lea rax, [rbx + rdi]
mov qword [rsp + 0x78], rax
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.180008ad0
sub rbx, rsi
lea rax, [rbx + r14]
mov qword [rsp + 0x70], rax
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x68]
lea rdx, [rbp + 0xd8]
lea rcx, [rbp + 0xa0]
call fcn.1800017a0
nop
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x1800027f6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1800027f6
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
mov r8d, 0xc526a26b
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x1800027f1
nop
movsx edx, dl
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx]
lea rcx, [rcx + 1]
test dl, dl
jne 0x1800027d0
cmp r8d, 0xcec085a4
je 0x1800027fb
test r9d, r9d
jne 0x1800027b0
mov rax, qword [rax]
jmp 0x180002780
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov r9d, dword [rcx + rax*4]
add r9, r10
xor edx, edx
mov ecx, 0x1fffff
lea r8d, [rdx + 0x6f]
call r9
mov r15, rax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x1800028b6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1800028b6
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r11]
add rdx, r11
mov r8d, 0x4c29b587
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x1800028b1
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180002890
cmp r8d, 0xb01bd32e
je 0x1800028bb
test r9d, r9d
jne 0x180002870
mov rax, qword [rax]
jmp 0x180002840
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rdi + 0x24]
add rax, r11
movzx eax, word [rax + r9*2]
mov r10d, dword [rcx + rax*4]
add r10, r11
mov dword [rsp + 0x20], 0x40
xor edx, edx
mov r9d, 0x3000
mov r8d, 0x1000
mov rcx, r15
call r10
mov r14, rax
mov rsi, qword [rbp + 0xe0]
sub rsi, qword [rbp + 0xd8]
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x180002996
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180002996
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r11]
add rdx, r11
mov r8d, 0x4f2bf8d7
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180002991
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180002970
cmp r8d, 0xf91918c0
je 0x18000299b
test r9d, r9d
jne 0x180002950
mov rax, qword [rax]
jmp 0x180002920
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rdi + 0x24]
add rax, r11
movzx eax, word [rax + r9*2]
mov r10d, dword [rcx + rax*4]
add r10, r11
mov qword [rsp + 0x20], r12
mov r9, rsi
mov r8, qword [rbp + 0xd8]
mov rdx, r14
mov rcx, r15
call r10
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x180002a56
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180002a56
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r11]
add rdx, r11
mov r8d, 0x362e1013
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180002a51
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180002a30
cmp r8d, 0xec4712bd
je 0x180002a5b
test r9d, r9d
jne 0x180002a10
mov rax, qword [rax]
jmp 0x1800029e0
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rdi + 0x24]
add rax, r11
movzx eax, word [rax + r9*2]
mov r10d, dword [rcx + rax*4]
add r10, r11
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
mov r9, r14
xor r8d, r8d
xor edx, edx
mov rcx, r15
call r10
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180002b26
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180002b26
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [r10 + r9*4]
mov edx, dword [rcx + rbx]
add rdx, r10
mov r8d, 0xb9311ce3
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180002b21
nop dword [rax]
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180002b00
cmp r8d, 0xf6ba937
je 0x180002b2b
test r9d, r9d
jne 0x180002ae0
mov rax, qword [rax]
jmp 0x180002ab0
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r10
mov rcx, r15
call rdx
nop
mov rcx, qword [rbp + 0xd8]
test rcx, rcx
je 0x180002b89
mov rdx, qword [rbp + 0xe8]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002b83
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002ce9
call fcn.180006b48
nop
mov rcx, qword [rbp + 0xa8]
test rcx, rcx
je 0x180002bdb
mov rdx, qword [rbp + 0xb8]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002bc4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002cef
call fcn.180006b48
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xa8], xmm0
mov qword [rbp + 0xb8], r12
mov rcx, qword [rbp + 0xc0]
test rcx, rcx
je 0x180002c1c
mov rdx, qword [rbp + 0xd0]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002c16
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002cbf
call fcn.180006b48
nop
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x70], rax
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx - 0x74], edx
lea rcx, [rbp - 0x60]
call fcn.180003950
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
lea rdx, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x70], rdx
mov rcx, qword [rbp - 0x70]
movsxd rdx, dword [rcx + 4]
lea r8d, [rdx - 0x18]
mov dword [rbp + rdx - 0x74], r8d
lea rcx, vtable.std::ios_base.0
mov qword [rbp + 0x40], rcx
lea rcx, [rbp + 0x40]
call fcn.180005cd8
nop
mov eax, 1
mov rcx, qword [rbp + 0x108]
xor rcx, rsp
call fcn.180006b20
lea r11, [rsp + 0x220]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.18000d0cc
nop
call fcn.180001d10
int3
call fcn.180001ec0
nop
call fcn.180001ec0
int3
call fcn.18000d0cc
nop
call fcn.180001ec0
int3
call fcn.18000d0cc
nop
call fcn.18000d0cc
nop
call fcn.18000d0cc
int3