Function at 0x180005440
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, 0xc8
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
mov rax, qword [0x180048040]
xor rax, rsp
mov qword [rbp - 0x29], rax
mov esi, r8d
mov r12, rdx
mov r13, rcx
mov qword [rbp - 0x49], rcx
mov dword [rbp - 0x31], r8d
mov r14, qword [rbp + 0x7f]
xor r15d, r15d
movzx eax, r9b
cmp byte [0x18004db3c], 1
cmovne eax, r15d
mov dword [rbp - 0x69], eax
lea rcx, [0x18004dd20]
lea r8, [0x18004dd60]
test al, al
cmovne r8, rcx
mov qword [rbp - 0x61], r8
movabs rdx, 0xcbf29ce484222325
mov ecx, r15d
movzx eax, byte [rbp + rcx - 0x31]
xor rdx, rax
movabs r9, 0x100000001b3
imul rdx, r9
inc rcx
cmp rcx, 4
jb 0x1800054c4
mov rcx, qword [r8 + 0x30]
and rcx, rdx
add rcx, rcx
mov rdx, qword [r8 + 0x18]
mov rax, qword [rdx + rcx*8 + 8]
cmp rax, qword [r8 + 8]
jne 0x180005501
mov rax, r15
jmp 0x18000551e
mov r8, qword [rdx + rcx*8]
jmp 0x180005510
cmp rax, r8
je 0x180005517
mov rax, qword [rax + 8]
cmp esi, dword [rax + 0x10]
jne 0x180005507
jmp 0x18000551a
mov rax, r15
mov r8, qword [rbp - 0x61]
test rax, rax
je 0x1800055ce
cmp rax, qword [r8 + 8]
je 0x1800055ce
lea rbx, [rax + 0x18]
lea rdx, [rbp - 0x51]
mov rcx, rbx
call fcn.180005ab8
mov rdx, r12
mov rcx, rax
call fcn.18000a1cc
mov dil, al
cmp qword [rbp - 0x51], r15
je 0x18000555e
lea rcx, [rbp - 0x51]
call fcn.180007a18
test dil, dil
je 0x18000557e
mov rcx, qword [rbx]
mov qword [r13], rcx
test rcx, rcx
je 0x180005a80
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_VariantClear]
jmp 0x180005a80
lea rcx, [0x18004dd20]
call fcn.180006dec
lea rcx, [0x18004dd60]
call fcn.180006dec
cmp qword [0x18004dce8], r15
je 0x1800055ab
lea rcx, [0x18004dce8]
call fcn.180007a18
mov qword [0x18004dce8], r15
cmp qword [0x18004dce0], r15
je 0x1800055c7
lea rcx, [0x18004dce0]
call fcn.180007a18
mov qword [0x18004dce0], r15
mov rbx, r15
mov qword [rbp - 0x71], rbx
test r14, r14
je 0x180005771
mov esi, dword [r14 + 8]
or esi, 0xff000000
mov dword [rbp - 0x31], esi
cmp dword [r14], 3
jne 0x18000560d
test byte [r14 + 4], 2
jne 0x180005665
cmp dword [0x18004e270], 0x585d
jae 0x180005665
mov esi, r15d
mov dword [rbp - 0x31], r15d
jmp 0x180005665
cmp dword [r14], 4
jne 0x180005665
cmp dword [r14 + 8], r15d
jne 0x180005665
mov dword [rbp - 0x51], r15d
lea r8, [rbp - 0x51]
lea rdx, [rbp - 0x39]
mov rcx, r12
call fcn.180003278
mov rcx, qword [rax]
test rcx, rcx
jne 0x18000563a
mov rbx, r15
jmp 0x180005652
mov qword [rbp - 0x51], r15
mov rax, qword [rcx]
lea r8, [rbp - 0x51]
lea rdx, [0x1800373d0]
call qword [rax]
mov rbx, qword [rbp - 0x51]
mov qword [rbp - 0x71], rbx
cmp qword [rbp - 0x39], r15
je 0x180005665
lea rcx, [rbp - 0x39]
call fcn.180007a18
cmp dword [r14], 2
jne 0x1800056e7
mov ecx, dword [r14 + 8]
mov eax, ecx
shr eax, 0x18
mov byte [rbp - 0x51], al
mov byte [rbp - 0x50], cl
mov eax, ecx
shr eax, 8
mov byte [rbp - 0x4f], al
shr ecx, 0x10
mov byte [rbp - 0x4e], cl
mov eax, dword [rbp - 0x51]
mov dword [rbp - 0x51], eax
lea r8, [rbp - 0x51]
lea rdx, [rbp - 0x49]
mov rcx, r12
call fcn.180003278
mov rcx, qword [rax]
test rcx, rcx
jne 0x1800056ab
mov rdi, r15
jmp 0x1800056c3
mov qword [rbp - 0x39], r15
mov rax, qword [rcx]
lea r8, [rbp - 0x39]
lea rdx, [0x1800373d0]
call qword [rax]
mov rdi, qword [rbp - 0x39]
test rbx, rbx
je 0x1800056d1
lea rcx, [rbp - 0x71]
call fcn.180007a18
mov rbx, rdi
mov qword [rbp - 0x71], rbx
cmp qword [rbp - 0x49], r15
je 0x1800056e7
lea rcx, [rbp - 0x49]
call fcn.180007a18
cmp dword [r14], 1
jne 0x180005768
mov eax, esi
shr eax, 0x18
mov byte [rbp - 0x51], al
mov byte [rbp - 0x50], sil
mov eax, esi
shr eax, 8
mov byte [rbp - 0x4f], al
mov eax, esi
shr eax, 0x10
mov byte [rbp - 0x4e], al
mov eax, dword [rbp - 0x51]
mov dword [rbp - 0x51], eax
lea r8, [rbp - 0x51]
lea rdx, [rbp - 0x39]
mov rcx, r12
call fcn.180003278
mov rcx, qword [rax]
test rcx, rcx
jne 0x18000572c
mov rdi, r15
jmp 0x180005744
mov qword [rbp - 0x49], r15
mov rax, qword [rcx]
lea r8, [rbp - 0x49]
lea rdx, [0x1800373d0]
call qword [rax]
mov rdi, qword [rbp - 0x49]
test rbx, rbx
je 0x180005752
lea rcx, [rbp - 0x71]
call fcn.180007a18
mov rbx, rdi
mov qword [rbp - 0x71], rbx
cmp qword [rbp - 0x39], r15
je 0x180005768
lea rcx, [rbp - 0x39]
call fcn.180007a18
test rbx, rbx
jne 0x180005a7c
mov r15d, esi
shr r15d, 0x18
mov byte [rbp - 0x51], r15b
mov byte [rbp - 0x50], sil
mov eax, esi
shr eax, 8
mov byte [rbp - 0x4f], al
mov eax, esi
shr eax, 0x10
mov byte [rbp - 0x4e], al
mov edi, dword [rbp - 0x51]
mov dword [rbp - 0x51], edi
movss xmm0, dword [0x1800480c0]
movss xmm2, dword [0x18003a0fc]
test r14, r14
je 0x1800057bd
movzx eax, byte [r14 + 0xb]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
divss xmm6, xmm2
jmp 0x1800057c0
movaps xmm6, xmm0
movsx ecx, byte [0x18004db3c]
test ecx, ecx
je 0x180005a1a
sub ecx, 1
je 0x1800059a7
sub ecx, 1
je 0x1800058b4
cmp ecx, 1
je 0x180005872
test r14, r14
je 0x1800057f3
mov esi, dword [r14 + 8]
mov eax, esi
shr eax, 0x18
mov byte [rbp - 0x51], al
mov byte [rbp - 0x50], sil
mov eax, esi
shr eax, 8
mov byte [rbp - 0x4f], al
shr esi, 0x10
mov byte [rbp - 0x4e], sil
mov eax, dword [rbp - 0x51]
mov dword [rbp - 0x51], eax
lea r8, [rbp - 0x51]
lea rdx, [rbp - 0x39]
mov rcx, r12
call fcn.180003278
mov rcx, qword [rax]
test rcx, rcx
jne 0x180005830
xor edi, edi
jmp 0x180005849
and qword [rbp - 0x49], 0
mov rax, qword [rcx]
lea r8, [rbp - 0x49]
lea rdx, [0x1800373d0]
call qword [rax]
mov rdi, qword [rbp - 0x49]
test rbx, rbx
je 0x180005857
lea rcx, [rbp - 0x71]
call fcn.180007a18
mov rbx, rdi
mov qword [rbp - 0x71], rbx
cmp qword [rbp - 0x39], 0
je 0x180005a62
lea rcx, [rbp - 0x39]
jmp 0x180005a5d
movss xmm1, dword [0x1800480c4]
test r14, r14
je 0x18000588f
movzx eax, byte [r14 + 0xb]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm2
movss dword [rsp + 0x28], xmm1
movss dword [rsp + 0x20], xmm0
lea r9, [rbp - 0x51]
lea r8, [rbp - 0x51]
mov rdx, r12
lea rcx, [rbp - 0x49]
call fcn.180004ce0
jmp 0x180005a2d
test r14, r14
je 0x1800058f3
mov ecx, 0x55f0
mov eax, dword [0x18004e270]
cmp eax, ecx
jb 0x1800058e8
test byte [r14 + 4], 2
je 0x1800058e8
cmp dword [r14], 3
jne 0x1800058d9
cmp eax, ecx
ja 0x1800058df
cmp dword [r14], 4
jne 0x1800058e8
mov dword [rbp - 0x49], 0x3f83d70a
jmp 0x180005900
test r14, r14
je 0x1800058f3
mov byte [rbp - 0x45], 0
jmp 0x180005904
movss xmm0, dword [0x1800480c4]
movss dword [rbp - 0x49], xmm0
mov byte [rbp - 0x45], 1
mov rsi, qword [rbp - 0x49]
movss xmm7, dword [0x1800480bc]
movss xmm8, dword [0x1800480c8]
mov r8, rsi
movaps xmm1, xmm6
mov ecx, edi
call fcn.180004030
mov dword [rbp - 0x69], eax
mov dword [rbp - 0x51], edi
shr rsi, 0x20
test sil, sil
je 0x18000594c
movd xmm0, r15d
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm6
call sub.ucrtbase.dll_roundf
cvttss2si eax, xmm0
jmp 0x180005973
mov ecx, edi
call fcn.180003f3c
movaps xmm2, xmm0
movd xmm1, r15d
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm6
cvtps2pd xmm0, xmm1
mulsd xmm0, xmm2
call qword [sym.imp.ucrtbase.dll_round]
cvttsd2si eax, xmm0
mov byte [rbp - 0x51], al
mov eax, dword [rbp - 0x51]
mov dword [rbp - 0x51], eax
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x28], xmm8
lea rax, [rbp - 0x69]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x51]
mov rdx, r12
lea rcx, [rbp - 0x49]
call fcn.1800041fc
jmp 0x180005a2d
movss xmm4, dword [0x1800480c8]
cmp byte [rbp - 0x69], 0
jne 0x1800059c5
mulss xmm0, dword [0x18003a05c]
addss xmm0, dword [0x18003a064]
movss xmm3, dword [0x1800480b8]
test r14, r14
je 0x1800059e4
movzx eax, byte [r14 + 0xb]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
divss xmm1, xmm2
jmp 0x1800059ec
movss xmm1, dword [0x18004db38]
movss dword [rsp + 0x38], xmm4
movss dword [rsp + 0x30], xmm0
movss dword [rsp + 0x28], xmm3
movss dword [rsp + 0x20], xmm1
lea r9, [rbp - 0x51]
lea r8, [rbp - 0x51]
mov rdx, r12
lea rcx, [rbp - 0x49]
call fcn.18000343c
jmp 0x180005a2d
movaps xmm3, xmm6
lea r8, [rbp - 0x51]
mov rdx, r12
lea rcx, [rbp - 0x49]
call fcn.180002ab0
mov rdi, rax
lea rax, [rbp - 0x71]
cmp rax, rdi
je 0x180005a52
test rbx, rbx
je 0x180005a47
lea rcx, [rbp - 0x71]
call fcn.180007a18
mov rbx, qword [rdi]
and qword [rdi], 0
mov qword [rbp - 0x71], rbx
cmp qword [rbp - 0x49], 0
je 0x180005a62
lea rcx, [rbp - 0x49]
call fcn.180007a18
test r14, r14
jne 0x180005a7c
lea r9, [rbp - 0x71]
lea r8, [rbp - 0x31]
lea rdx, [rbp - 0x49]
mov rcx, qword [rbp - 0x61]
call fcn.180008a20
mov qword [r13], rbx
mov rax, r13
mov rcx, qword [rbp - 0x29]
xor rcx, rsp
call fcn.18002dc90
lea r11, [rsp + 0xc8]
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