Function at 0x1800052d0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x57]
sub rsp, 0xd8
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
mov rax, qword [0x18004d040]
xor rax, rsp
mov qword [rbp - 0x31], rax
mov esi, r8d
mov r15, rdx
mov r12, rcx
mov qword [rbp - 0x59], rcx
mov dword [rbp - 0x39], r8d
mov rdi, qword [rbp + 0x7f]
xor r14d, r14d
movzx r13d, r9b
cmp byte [0x18005300c], 1
cmovne r13d, r14d
lea rax, [0x180053200]
lea r9, [0x180053240]
test r13b, r13b
cmovne r9, rax
mov qword [rbp - 0x59], r9
movabs rcx, 0xcbf29ce484222325
mov edx, r14d
movzx eax, byte [rbp + rdx - 0x39]
xor rcx, rax
movabs r8, 0x100000001b3
imul rcx, r8
inc rdx
cmp rdx, 4
jb 0x180005352
mov rdx, qword [r9 + 0x30]
and rdx, rcx
add rdx, rdx
mov rcx, qword [r9 + 0x18]
mov rax, qword [rcx + rdx*8 + 8]
cmp rax, qword [r9 + 8]
je 0x1800053a0
mov r8, qword [rcx + rdx*8]
jmp 0x180005399
cmp rax, r8
je 0x1800053a0
mov rax, qword [rax + 8]
cmp esi, dword [rax + 0x10]
jne 0x180005390
jmp 0x1800053a3
mov rax, r14
test rax, rax
cmove rax, qword [r9 + 8]
cmp rax, qword [r9 + 8]
je 0x180005456
lea rbx, [rax + 0x18]
lea rdx, [rbp - 0x49]
mov rcx, rbx
call fcn.180005988
mov rdx, r15
mov rcx, rax
call fcn.18000a0b8
mov r14b, al
cmp qword [rbp - 0x49], 0
je 0x1800053e3
lea rcx, [rbp - 0x49]
call fcn.1800078ec
test r14b, r14b
je 0x180005403
mov rcx, qword [rbx]
mov qword [r12], rcx
test rcx, rcx
je 0x180005951
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_VariantClear]
jmp 0x180005951
lea rcx, [0x180053200]
call fcn.180006cc8
lea rcx, [0x180053240]
call fcn.180006cc8
xor r14d, r14d
cmp qword [0x1800531c8], r14
je 0x180005433
lea rcx, [0x1800531c8]
call fcn.1800078ec
mov qword [0x1800531c8], r14
cmp qword [0x1800531c0], r14
je 0x18000544f
lea rcx, [0x1800531c0]
call fcn.1800078ec
mov qword [0x1800531c0], r14
mov rbx, r14
mov qword [rbp - 0x79], rbx
test rdi, rdi
je 0x180005603
mov esi, dword [rdi + 8]
or esi, 0xff000000
mov dword [rbp - 0x39], esi
cmp dword [rdi], 3
jne 0x180005492
test byte [rdi + 4], 2
jne 0x1800054eb
cmp dword [0x1800537b0], 0x585d
jae 0x1800054eb
mov esi, r14d
mov dword [rbp - 0x39], r14d
jmp 0x1800054eb
cmp dword [rdi], 4
jne 0x1800054eb
cmp dword [rdi + 8], r14d
jne 0x1800054eb
mov dword [rsp + 0x40], r14d
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x71]
mov rcx, r15
call fcn.180003270
mov rcx, qword [rax]
test rcx, rcx
jne 0x1800054c0
mov rbx, r14
jmp 0x1800054d8
mov qword [rbp - 0x49], r14
mov rax, qword [rcx]
lea r8, [rbp - 0x49]
lea rdx, [0x18003b410]
call qword [rax]
mov rbx, qword [rbp - 0x49]
mov qword [rbp - 0x79], rbx
cmp qword [rbp - 0x71], r14
je 0x1800054eb
lea rcx, [rbp - 0x71]
call fcn.1800078ec
cmp dword [rdi], 2
jne 0x180005578
mov r8d, dword [rdi + 8]
mov edx, r8d
shr edx, 0x18
mov ecx, r8d
shr ecx, 8
mov eax, r8d
shr eax, 0x10
mov byte [rsp + 0x40], dl
mov byte [rbp - 0x80], r8b
mov byte [rbp - 0x7f], cl
mov byte [rbp - 0x7e], al
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x40], eax
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x71]
mov rcx, r15
call fcn.180003270
mov rcx, qword [rax]
test rcx, rcx
je 0x180005551
mov qword [rbp - 0x49], r14
mov rax, qword [rcx]
lea r8, [rbp - 0x49]
lea rdx, [0x18003b410]
call qword [rax]
mov r14, qword [rbp - 0x49]
test rbx, rbx
je 0x18000555f
lea rcx, [rbp - 0x79]
call fcn.1800078ec
mov rbx, r14
mov qword [rbp - 0x79], rbx
xor r14d, r14d
cmp qword [rbp - 0x71], r14
je 0x180005578
lea rcx, [rbp - 0x71]
call fcn.1800078ec
cmp dword [rdi], 1
jne 0x1800055fa
mov edx, esi
shr edx, 0x18
mov ecx, esi
shr ecx, 8
mov eax, esi
shr eax, 0x10
mov byte [rsp + 0x40], dl
mov byte [rbp - 0x80], sil
mov byte [rbp - 0x7f], cl
mov byte [rbp - 0x7e], al
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x40], eax
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x71]
mov rcx, r15
call fcn.180003270
mov rcx, qword [rax]
test rcx, rcx
je 0x1800055d3
mov qword [rbp - 0x49], r14
mov rax, qword [rcx]
lea r8, [rbp - 0x49]
lea rdx, [0x18003b410]
call qword [rax]
mov r14, qword [rbp - 0x49]
test rbx, rbx
je 0x1800055e1
lea rcx, [rbp - 0x79]
call fcn.1800078ec
mov rbx, r14
mov qword [rbp - 0x79], rbx
xor r14d, r14d
cmp qword [rbp - 0x71], r14
je 0x1800055fa
lea rcx, [rbp - 0x71]
call fcn.1800078ec
test rbx, rbx
jne 0x18000594d
mov edx, esi
shr edx, 0x18
mov ecx, esi
shr ecx, 8
mov eax, esi
shr eax, 0x10
mov byte [rsp + 0x40], dl
mov byte [rbp - 0x80], sil
mov byte [rbp - 0x7f], cl
mov byte [rbp - 0x7e], al
mov ecx, dword [rsp + 0x40]
mov dword [rbp - 0x41], ecx
movss xmm0, dword [0x18004d0d0]
movss xmm2, dword [0x18003e284]
test rdi, rdi
je 0x18000564d
movzx eax, byte [rdi + 0xb]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
divss xmm6, xmm2
jmp 0x180005650
movaps xmm6, xmm0
movsx edx, byte [0x18005300c]
test edx, edx
je 0x1800058ed
sub edx, 1
je 0x18000587c
sub edx, 1
je 0x18000577b
cmp edx, 1
je 0x180005708
test rdi, rdi
je 0x180005682
mov esi, dword [rdi + 8]
mov r8d, esi
shr r8d, 0x18
mov edx, esi
shr edx, 8
mov eax, esi
shr eax, 0x10
mov byte [rsp + 0x40], r8b
mov byte [rbp - 0x80], sil
mov byte [rbp - 0x7f], dl
mov byte [rbp - 0x7e], al
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x40], eax
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x71]
mov rcx, r15
call fcn.180003270
mov rcx, qword [rax]
test rcx, rcx
jne 0x1800056c8
mov rsi, r14
jmp 0x1800056e0
mov qword [rbp - 0x49], r14
mov rax, qword [rcx]
lea r8, [rbp - 0x49]
lea rdx, [0x18003b410]
call qword [rax]
mov rsi, qword [rbp - 0x49]
test rbx, rbx
je 0x1800056ee
lea rcx, [rbp - 0x79]
call fcn.1800078ec
mov rbx, rsi
mov qword [rbp - 0x79], rbx
cmp qword [rbp - 0x71], r14
je 0x180005933
lea rcx, [rbp - 0x71]
jmp 0x18000592e
movss xmm1, dword [0x18004d0d4]
test rdi, rdi
je 0x180005724
movzx eax, byte [rdi + 0xb]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm2
movss dword [rsp + 0x28], xmm1
movss dword [rsp + 0x20], xmm0
lea r9, [rbp - 0x41]
lea r8, [rbp - 0x41]
mov rdx, r15
lea rcx, [rbp - 0x49]
call fcn.180004bb8
mov rsi, rax
lea rax, [rbp - 0x79]
cmp rax, rsi
je 0x180005768
test rbx, rbx
je 0x18000575e
lea rcx, [rbp - 0x79]
call fcn.1800078ec
mov rbx, qword [rsi]
mov qword [rsi], r14
mov qword [rbp - 0x79], rbx
cmp qword [rbp - 0x49], r14
je 0x180005933
lea rcx, [rbp - 0x49]
jmp 0x18000592e
test rdi, rdi
je 0x1800057bb
mov edx, 0x55f0
mov eax, dword [0x1800537b0]
cmp eax, edx
jb 0x1800057ac
test byte [rdi + 4], 2
je 0x1800057ac
cmp dword [rdi], 3
jne 0x18000579e
cmp eax, edx
ja 0x1800057a3
cmp dword [rdi], 4
jne 0x1800057ac
mov dword [rbp - 0x49], 0x3f83d70a
jmp 0x1800057c8
test rdi, rdi
je 0x1800057bb
mov byte [rbp - 0x65], r14b
mov rsi, qword [rbp - 0x69]
jmp 0x1800057d0
movss xmm0, dword [0x18004d0d4]
movss dword [rbp - 0x49], xmm0
mov byte [rbp - 0x45], 1
mov rsi, qword [rbp - 0x49]
movss xmm7, dword [0x18004d0cc]
movss xmm8, dword [0x18004d0d8]
mov r8, rsi
movaps xmm1, xmm6
call fcn.180003fa8
mov dword [rbp - 0x71], eax
mov r8d, dword [rbp - 0x41]
mov dword [rsp + 0x40], r8d
shr rsi, 0x20
test sil, sil
je 0x18000581b
movzx eax, r8b
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm6
call sub.ucrtbase.dll_roundf
cvttss2si eax, xmm0
jmp 0x180005846
mov ecx, r8d
call fcn.180003eb4
movaps xmm2, xmm0
movzx eax, r8b
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm6
cvtps2pd xmm0, xmm1
mulsd xmm0, xmm2
call qword [sym.imp.ucrtbase.dll_round]
cvttsd2si eax, xmm0
mov byte [rsp + 0x40], al
mov eax, dword [rsp + 0x40]
mov dword [rbp - 0x49], eax
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x28], xmm8
lea rax, [rbp - 0x71]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x49]
mov rdx, r15
lea rcx, [rbp - 0x69]
call fcn.180004174
jmp 0x180005900
movss xmm4, dword [0x18004d0d8]
test r13b, r13b
jne 0x180005899
mulss xmm0, dword [0x18003e1cc]
addss xmm0, dword [0x18003e1d4]
movss xmm3, dword [0x18004d0c8]
test rdi, rdi
je 0x1800058b7
movzx eax, byte [rdi + 0xb]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
divss xmm1, xmm2
jmp 0x1800058bf
movss xmm1, dword [0x180053008]
movss dword [rsp + 0x38], xmm4
movss dword [rsp + 0x30], xmm0
movss dword [rsp + 0x28], xmm3
movss dword [rsp + 0x20], xmm1
lea r9, [rbp - 0x41]
lea r8, [rbp - 0x41]
mov rdx, r15
lea rcx, [rbp - 0x69]
call fcn.180003434
jmp 0x180005900
movaps xmm3, xmm6
lea r8, [rbp - 0x41]
mov rdx, r15
lea rcx, [rbp - 0x69]
call fcn.180002af4
mov rsi, rax
lea rax, [rbp - 0x79]
cmp rax, rsi
je 0x180005924
test rbx, rbx
je 0x18000591a
lea rcx, [rbp - 0x79]
call fcn.1800078ec
mov rbx, qword [rsi]
mov qword [rsi], r14
mov qword [rbp - 0x79], rbx
cmp qword [rbp - 0x69], r14
je 0x180005933
lea rcx, [rbp - 0x69]
call fcn.1800078ec
test rdi, rdi
jne 0x18000594d
lea r9, [rbp - 0x79]
lea r8, [rbp - 0x39]
lea rdx, [rbp - 0x69]
mov rcx, qword [rbp - 0x59]
call fcn.1800088f8
mov qword [r12], rbx
mov rax, r12
mov rcx, qword [rbp - 0x31]
xor rcx, rsp
call fcn.180031670
lea r11, [rsp + 0xd8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret