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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], r8
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xe8]
sub rsp, 0x1b0
and dword [rsp + 0x60], 0
lea rcx, [rsp + 0x40]
movaps xmmword [rax - 0x48], xmm6
mov rsi, rdx
cvttss2si edx, dword [r9]
mov r12, r9
mov r13, r8
mov dword [rsp + 0x68], 0x42c80000
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
xorps xmm8, xmm8
movaps xmmword [rax - 0x78], xmm9
movss xmm9, dword [0x18003cd5c]
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
movaps xmmword [rax - 0xd8], xmm15
call fcn.180012254
mov rdx, rax
call fcn.180013fa8
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x1800124c1
mov rcx, qword [rsp + 0x40]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800124bc
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800130eb
call fcn.180025d04
mov rax, qword [0x180042df8]
test rax, rax
je 0x180013092
movss xmm13, dword [0x180040c00]
lea r8, [rsp + 0x40]
movss xmm6, dword [rax + 8]
movaps xmm0, xmm13
mulss xmm0, dword [0x18003cd28]
movaps xmm11, xmm13
mulss xmm13, dword [0x18003ccdc]
xorps xmm3, xmm3
movss xmm7, dword [rax + 0x10]
subss xmm6, xmm0
movups xmm0, xmmword [0x18003ca18]
movss xmm10, dword [0x18003cd04]
movaps xmm14, xmm7
mulss xmm11, xmm10
movaps xmm12, xmm6
movdqa xmmword [rsp + 0x40], xmm0
unpcklps xmm12, xmm13
addss xmm11, dword [rax + 0x14]
movq rdx, xmm12
unpcklps xmm14, xmm11
movq rcx, xmm14
call qword [0x180042d48]
mov r15, qword [0x180042df8]
mov edi, 1
movss xmm0, dword [0x180040c00]
movss xmm4, dword [0x180042d10]
mulss xmm0, xmm10
movss xmm3, dword [r15 + 4]
movss xmm1, dword [r15]
movaps xmm2, xmm3
addss xmm0, dword [0x18003ccfc]
addss xmm2, xmm11
addss xmm3, xmm11
addss xmm2, xmm13
addss xmm3, xmm0
addss xmm2, xmm0
movaps xmm0, xmm1
addss xmm0, xmm7
comiss xmm4, xmm0
jb 0x1800125c8
movss xmm0, dword [0x180042d14]
comiss xmm0, xmm3
jb 0x1800125c8
addss xmm1, xmm7
addss xmm1, xmm6
comiss xmm4, xmm1
ja 0x1800125c8
comiss xmm0, xmm2
ja 0x1800125c8
mov r11b, dil
jmp 0x1800125cb
xor r11b, r11b
cmp qword [0x180042dd8], 0
mov rcx, qword [0x180042dd0]
jne 0x1800125e6
test rcx, rcx
jne 0x1800125e6
mov r10b, dil
jmp 0x1800125e9
xor r10b, r10b
movss xmm15, dword [0x18003cca8]
movabs rax, 0x100000001b3
mov r9b, byte [0x180042d20]
movabs r14, 0xcbf29ce484222325
mov qword [rbp + 0xf0], rax
test r11b, r11b
je 0x1800126cc
mov bl, byte [0x180042d21]
test r9b, r9b
je 0x1800126cc
test bl, bl
jne 0x18001266e
test r10b, r10b
je 0x18001266e
xor edx, edx
cmp byte [rsi], dl
je 0x180012644
add rdx, rdi
cmp byte [rdx + rsi], 0
jne 0x18001263b
xor r8d, r8d
mov rcx, r14
test rdx, rdx
je 0x180012667
imul rcx, qword [rbp + 0xf0]
movsx rax, byte [r8 + rsi]
add r8, rdi
xor rcx, rax
cmp r8, rdx
jb 0x18001264f
mov qword [0x180042dd0], rcx
test r9b, r9b
je 0x1800126cc
test bl, bl
jne 0x1800126cc
test r10b, r10b
je 0x1800126cc
cmp byte [0x180042a92], bl
je 0x1800126cc
xor ecx, ecx
cmp byte [rsi], cl
je 0x180012693
add rcx, rdi
cmp byte [rcx + rsi], 0
jne 0x18001268a
xor r8d, r8d
mov rdx, r14
test rcx, rcx
je 0x1800126bc
movabs r9, 0x100000001b3
movsx rax, byte [r8 + rsi]
add r8, rdi
imul rdx, r9
xor rdx, rax
cmp r8, rcx
jb 0x1800126a8
lea rax, [rdx + 2]
mov qword [0x180042dd0], rax
jmp 0x1800129b7
mov bl, byte [rsi]
xor edx, edx
test bl, bl
je 0x1800126dd
add rdx, rdi
cmp byte [rdx + rsi], 0
jne 0x1800126d4
xor r10d, r10d
mov r8, r14
test rdx, rdx
je 0x180012700
imul r8, qword [rbp + 0xf0]
movsx rax, byte [r10 + rsi]
add r10, rdi
xor r8, rax
cmp r10, rdx
jb 0x1800126e8
lea rax, [r8 + 2]
cmp rcx, rax
jne 0x1800128b7
mov ecx, 8
call fcn.1800142cc
mov r8, qword [0x180040f40]
lea r10, [0x180040f30]
test al, al
je 0x18001275e
test r8, r8
je 0x18001275e
cmp qword [0x180040f48], 0xf
lea rcx, [r8 - 1]
mov qword [0x180040f40], rcx
mov rax, r10
cmova rax, qword [0x180040f30]
mov byte [rax + rcx], 0
mov r8, qword [0x180040f40]
mov r9b, byte [0x180042d20]
mov ecx, 0x1b
call fcn.1800142cc
test al, al
jne 0x18001278c
mov ecx, 0xd
call fcn.1800142cc
test al, al
jne 0x18001278c
test r11b, r11b
jne 0x18001286c
test r9b, r9b
je 0x18001286c
mov rbx, qword [0x180040f48]
mov rax, r10
mov r11, qword [0x180040f30]
cmp rbx, 0xf
mov rdx, r10
cmova rax, r11
add rax, r8
cmp rbx, 0xf
cmova rdx, r11
jmp 0x1800127c2
mov cl, byte [rdx]
sub cl, 0x30
cmp cl, 9
jbe 0x1800127c7
add rdx, rdi
cmp rdx, rax
jne 0x1800127b5
cmp rbx, 0xf
mov r13, r10
cmova r13, r11
xor r9d, r9d
add r13, r8
xor r15d, r15d
test r8, r8
je 0x180012819
xor r10d, r10d
cmp r8, r10
jbe 0x1800130e5
cmp rbx, 0xf
lea eax, [r9 + 1]
lea rcx, [0x180040f30]
cmova rcx, r11
cmp byte [rcx + r10], 0x2d
cmovne eax, r9d
add r15d, edi
mov r9d, eax
add r10, rdi
movsxd rax, r15d
cmp rax, r8
jb 0x1800127e3
cmp rdx, r13
je 0x18001285d
cmp r9d, 2
jge 0x18001285d
test r8, r8
je 0x18001285d
call fcn.18001230c
comiss xmm0, xmm8
lea rax, [rbp + 0x110]
lea rcx, [rsp + 0x60]
movss dword [rbp + 0x110], xmm0
cmovae rcx, rax
lea rax, [rsp + 0x68]
comiss xmm0, xmm9
cmovbe rax, rcx
mov eax, dword [rax]
mov dword [r12], eax
and qword [0x180042dd0], 0
mov r13, qword [rbp + 0x100]
xor ebx, ebx
lea eax, [rbx - 0x30]
cmp eax, 9
jbe 0x18001287d
lea eax, [rbx - 0x2d]
cmp eax, edi
ja 0x1800128a8
mov ecx, ebx
call fcn.1800142cc
test al, al
je 0x1800128a8
cmp ebx, 0x2d
jne 0x180012891
mov dl, bl
jmp 0x180012898
cmp ebx, 0x2e
jne 0x1800128a1
mov dl, bl
call fcn.180013dfc
inc ebx
jmp 0x18001286e
mov dl, bl
call fcn.180013dfc
add ebx, edi
cmp ebx, 0x149
jl 0x18001286e
jmp 0x1800129b7
xor edx, edx
test r9b, r9b
je 0x180012974
test bl, bl
je 0x1800128cf
add rdx, rdi
cmp byte [rdx + rsi], 0
jne 0x1800128c6
xor r9d, r9d
mov r8, r14
test rdx, rdx
je 0x1800128f8
movabs r10, 0x100000001b3
movsx rax, byte [r9 + rsi]
add r9, rdi
imul r8, r10
xor r8, rax
cmp r9, rdx
jb 0x1800128e4
cmp rcx, r8
jne 0x1800129b7
movaps xmm0, xmm7
lea rax, [rsp + 0x70]
addss xmm0, dword [r15]
movaps xmm1, xmm6
lea rcx, [rsp + 0x60]
subss xmm1, xmm15
subss xmm4, xmm0
movss dword [rsp + 0x74], xmm1
comiss xmm4, xmm8
movss dword [rsp + 0x70], xmm4
cmovae rcx, rax
lea rax, [rsp + 0x74]
comiss xmm1, xmm4
cmovae rax, rcx
lea rcx, [rsp + 0x60]
movss xmm0, dword [rax]
lea rax, [rsp + 0x68]
divss xmm0, xmm1
mulss xmm0, xmm9
comiss xmm0, xmm8
movss dword [r12], xmm0
cmovae rcx, r12
comiss xmm0, xmm9
cmovbe rax, rcx
mov eax, dword [rax]
mov dword [r12], eax
jmp 0x1800129b7
test bl, bl
je 0x180012981
add rdx, rdi
cmp byte [rdx + rsi], 0
jne 0x180012978
xor r9d, r9d
mov r8, r14
test rdx, rdx
je 0x1800129aa
movabs r10, 0x100000001b3
movsx rax, byte [r9 + rsi]
add r9, rdi
imul r8, r10
xor r8, rax
cmp r9, rdx
jb 0x180012996
cmp rcx, r8
jne 0x1800129b7
and qword [0x180042dd0], 0
movss xmm2, dword [r12]
lea r9, [rsp + 0x30]
movabs rcx, 0x809c829df3a86105
mulss xmm2, xmm6
movabs rax, 0x813d3948ba873be2
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
lea rdx, [rbp - 0x70]
mov qword [rsp + 0x40], rcx
mulss xmm2, dword [0x18003cc68]
mov qword [rsp + 0x48], rax
movdqa xmm0, xmmword [rsp + 0x40]
xorps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
movss xmm0, dword [r12]
cvtps2pd xmm0, xmm0
mov qword [rsp + 0x20], r13
call fcn.1800120d8
movups xmm0, xmmword [0x180040f70]
lea r8, [rsp + 0x40]
movaps xmm1, xmm7
unpcklps xmm2, xmm13
unpcklps xmm1, xmm11
movaps xmm3, xmm8
movq rcx, xmm1
movdqa xmmword [rsp + 0x40], xmm0
movq rdx, xmm2
call qword [0x180042d48]
movups xmm0, xmmword [0x180041020]
lea r8, [rsp + 0x40]
movaps xmm3, xmm8
movq rdx, xmm12
movq rcx, xmm14
movdqa xmmword [rsp + 0x40], xmm0
call qword [0x180042d40]
mov rax, qword [0x180042790]
lea rcx, [rbp - 0x70]
call rax
mov rdx, qword [0x180042790]
mov rcx, rsi
mov r15, rax
call rdx
mov rdx, r15
lea rcx, [rsp + 0x78]
mov rbx, rax
call qword [0x180042d58]
mov rdx, rbx
lea rcx, [rbp - 0x80]
call qword [0x180042d58]
movups xmm0, xmmword [0x180041010]
lea r8, [rsp + 0x40]
xor r9d, r9d
movaps xmm1, xmm11
mov rdx, rsi
subss xmm1, dword [rbp - 0x7c]
movups xmmword [rsp + 0x40], xmm0
movaps xmm0, xmm7
unpcklps xmm0, xmm1
movq rcx, xmm0
call qword [0x180042d50]
xor r12d, r12d
mov edx, r12d
cmp byte [rsi], r12b
je 0x180012af4
add rdx, rdi
cmp byte [rdx + rsi], r12b
jne 0x180012aeb
mov rcx, r14
mov r8, r12
movabs rbx, 0x100000001b3
test rdx, rdx
je 0x180012b1d
movsx rax, byte [r8 + rsi]
add r8, rdi
imul rcx, rbx
xor rcx, rax
cmp r8, rdx
jb 0x180012b09
movss xmm14, dword [0x18003ccd0]
lea rax, [rcx + 2]
cmp qword [0x180042dd0], rax
je 0x180012b72
subss xmm6, dword [rsp + 0x78]
movups xmm0, xmmword [0x180041010]
lea r8, [rsp + 0x40]
xor r9d, r9d
movaps xmm1, xmm11
lea rdx, [rbp - 0x70]
subss xmm1, dword [rsp + 0x7c]
addss xmm6, xmm7
movups xmmword [rsp + 0x40], xmm0
unpcklps xmm6, xmm1
movq rcx, xmm6
call qword [0x180042d50]
jmp 0x180012d3f
mov rdx, r15
lea rcx, [rbp + 0x108]
call qword [0x180042d58]
movups xmm0, xmmword [0x180041010]
lea r8, [rsp + 0x40]
xor r9d, r9d
movaps xmm2, xmm6
lea rdx, [rbp - 0x70]
subss xmm2, dword [rbp + 0x108]
movaps xmm1, xmm11
subss xmm1, dword [rbp + 0x10c]
movups xmmword [rsp + 0x40], xmm0
addss xmm2, xmm7
unpcklps xmm2, xmm1
movq rcx, xmm2
call qword [0x180042d50]
mov ecx, dword [0x180042944]
cmp ecx, 0x50
jle 0x180012bd7
mov ecx, r12d
mov dword [0x180042944], ecx
cmp ecx, 0x28
jle 0x180012bf0
cmp byte [0x180042948], r12b
sete r9b
mov byte [0x180042948], r9b
jmp 0x180012bf7
mov r9b, byte [0x180042948]
mov rdx, r12
cmp byte [rsi], r12b
je 0x180012c08
add rdx, rdi
cmp byte [rdx + rsi], r12b
jne 0x180012bff
mov r8, r12
test rdx, rdx
je 0x180012c24
movsx rax, byte [r8 + rsi]
add r8, rdi
imul r14, rbx
xor r14, rax
cmp r8, rdx
jb 0x180012c10
lea rax, [r14 + 2]
cmp qword [0x180042dd0], rax
jne 0x180012d37
movss xmm4, dword [rbp + 0x108]
comiss xmm4, xmm8
ja 0x180012c47
movaps xmm4, xmm10
mov r10, qword [0x180042d48]
test r9b, r9b
je 0x180012c58
lea edx, [rcx + rcx*4]
jmp 0x180012c68
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movss xmm3, dword [0x18003cc5c]
subss xmm6, xmm4
movss xmm2, dword [0x18003cd74]
lea r8, [rsp + 0x40]
movss xmm0, dword [0x180041010]
mulss xmm0, xmm2
addss xmm6, xmm7
cvttss2si eax, xmm0
movss xmm0, dword [0x180041014]
mulss xmm0, xmm2
movd xmm1, eax
cvttss2si eax, xmm0
movss xmm0, dword [0x180041018]
mulss xmm0, xmm2
movaps xmm2, xmm11
cvtdq2ps xmm1, xmm1
subss xmm2, xmm14
mulss xmm1, xmm3
movss dword [rsp + 0x30], xmm1
movd xmm1, eax
cvttss2si eax, xmm0
cvtdq2ps xmm1, xmm1
movd xmm0, edx
mulss xmm1, xmm3
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x34], xmm1
mulss xmm0, xmm3
movd xmm1, eax
mov rax, qword [rsp + 0x30]
movss dword [rsp + 0x3c], xmm0
movaps xmm0, xmm4
cvtdq2ps xmm1, xmm1
mov qword [rsp + 0x40], rax
unpcklps xmm0, xmm15
mulss xmm1, xmm3
movq rdx, xmm0
unpcklps xmm6, xmm2
movaps xmm3, xmm8
movq rcx, xmm6
movss dword [rsp + 0x38], xmm1
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x48], rax
call r10
mov ecx, dword [0x180042944]
add ecx, edi
mov dword [0x180042944], ecx
mov rbx, qword [rbp + 0x120]
cmp byte [rbx + 8], r12b
je 0x180013067
mov rax, qword [0x180042790]
lea rcx, [rsp + 0x30]
movabs rsi, 0x813d3948ba873be2
movabs r15, 0x809c829df3a86105
mov qword [rsp + 0x38], rsi
movabs r14, 0x809c829df3815e2d
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], rsi
movdqa xmm0, xmmword [rsp + 0x40]
xorps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
call rax
mov rdx, rax
lea rcx, [rbp + 0xf0]
call qword [0x180042d58]
movss xmm12, dword [rbp - 0x80]
movss xmm3, dword [rbp + 0xf4]
addss xmm12, xmm7
mov rax, qword [0x180042df8]
subss xmm11, xmm3
movss xmm0, dword [0x180040c00]
movss xmm5, dword [0x180042d10]
movss xmm4, dword [rbp + 0xf0]
addss xmm12, xmm14
mulss xmm0, xmm10
movaps xmm2, xmm11
addss xmm2, dword [rax + 4]
addss xmm0, dword [0x18003ccfc]
movaps xmm1, xmm12
addss xmm1, dword [rax]
addss xmm3, xmm2
addss xmm2, xmm0
comiss xmm5, xmm1
addss xmm3, xmm0
addss xmm4, xmm1
jb 0x180012e37
movss xmm0, dword [0x180042d14]
comiss xmm0, xmm2
jb 0x180012e37
comiss xmm5, xmm4
ja 0x180012e37
comiss xmm0, xmm3
jbe 0x180012e3a
mov dil, r12b
mov qword [rsp + 0x48], rsi
lea rcx, [0x180040f50]
mov qword [rsp + 0x38], rsi
lea rax, [0x180040f60]
mov qword [rsp + 0x40], r15
lea r8, [rsp + 0x40]
movdqa xmm0, xmmword [rsp + 0x40]
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x30], r14
test dil, dil
xorps xmm0, xmmword [rsp + 0x30]
mov esi, 4
movdqa xmmword [rsp + 0x30], xmm0
cmove rax, rcx
mov r9d, esi
movups xmm0, xmmword [rax]
movdqu xmmword [rsp + 0x40], xmm0
movaps xmm0, xmm12
unpcklps xmm0, xmm11
movq rcx, xmm0
call qword [0x180042d50]
test dil, dil
je 0x180013067
cmp qword [0x180042dd0], r12
jne 0x180013067
mov rax, qword [0x180042790]
mov rcx, qword [rbx]
call rax
mov rcx, qword [0x180042df8]
movaps xmm0, xmm13
addss xmm0, xmm13
mov rdx, rax
mov rax, qword [0x180042d58]
addss xmm12, dword [rcx]
addss xmm11, dword [rcx + 4]
lea rcx, [rbp + 0x108]
addss xmm12, dword [rbp + 0xf0]
addss xmm11, dword [rbp + 0xf4]
movaps xmm10, xmm12
addss xmm10, dword [0x18003ccd8]
addss xmm11, xmm0
call rax
movss xmm9, dword [0x180040c00]
lea rdi, [0x180042d88]
mulss xmm9, dword [0x18003ccec]
lea r9, [rsp + 0x40]
mov rcx, rdi
movaps xmm0, xmmword [0x18003ce40]
movaps xmm1, xmm10
movq qword [rsp + 0x40], xmm0
movaps xmm8, xmm9
psrldq xmm0, 8
addss xmm8, dword [rax]
addss xmm9, dword [rax + 4]
movq qword [rsp + 0x48], xmm0
unpcklps xmm1, xmm11
movq rdx, xmm1
movss dword [rsp + 0x20], xmm14
movaps xmm0, xmm8
unpcklps xmm0, xmm9
movq r8, xmm0
call fcn.180014dbc
movups xmm0, xmmword [0x180041010]
mov r8, qword [rbx]
lea r9, [rsp + 0x40]
movaps xmm2, xmm12
mov dword [rsp + 0x20], esi
addss xmm2, dword [0x18003ccec]
movaps xmm1, xmm11
movdqa xmmword [rsp + 0x40], xmm0
addss xmm1, dword [0x18003ccd8]
mov rcx, rdi
unpcklps xmm2, xmm1
movq rdx, xmm2
call fcn.180014c54
addss xmm12, dword [0x18003ccdc]
movaps xmm1, xmmword [0x18003ce70]
lea r9, [rsp + 0x40]
movaps xmm4, xmm8
movq qword [rsp + 0x40], xmm1
subss xmm4, dword [0x18003ccc0]
movaps xmm3, xmm9
psrldq xmm1, 8
subss xmm3, dword [0x18003ccc0]
movaps xmm2, xmm11
movss dword [rsp + 0x20], xmm14
addss xmm2, xmm15
movq qword [rsp + 0x48], xmm1
mov rcx, rdi
unpcklps xmm4, xmm3
movq r8, xmm4
unpcklps xmm12, xmm2
movq rdx, xmm12
call fcn.180014d08
movups xmm0, xmmword [0x180041020]
lea r9, [rsp + 0x40]
mov rcx, rdi
movaps xmm1, xmm10
movss dword [rsp + 0x20], xmm14
movdqa xmmword [rsp + 0x40], xmm0
movaps xmm0, xmm8
unpcklps xmm0, xmm9
unpcklps xmm1, xmm11
movq r8, xmm0
movq rdx, xmm1
call fcn.180014d08
mov rax, qword [0x180042df8]
addss xmm13, xmm13
movss xmm0, dword [0x180040c00]
mulss xmm0, dword [0x18003ccf4]
addss xmm0, dword [rax + 0x14]
addss xmm0, xmm13
movss dword [rax + 0x14], xmm0
lea r11, [rsp + 0x1b0]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.18000f908
int3
call fcn.18002a11c
int3