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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xf0
movaps xmmword [rsp + 0xe0], xmm6
mov rax, qword [0x140076080]
xor rax, rsp
mov qword [rbp + 0xf], rax
mov qword [rbp - 0x49], rdx
mov r13, rcx
xorps xmm0, xmm0
movups xmmword [rbp - 0x11], xmm0
xor ebx, ebx
mov qword [rbp - 1], rbx
mov qword [rbp + 7], 0xf
mov byte [rbp - 0x11], bl
mov rcx, qword [rcx]
mov rax, qword [rcx]
movsxd rdx, dword [rax + 4]
mov eax, 4
cmp qword [rdx + rcx + 0x48], rbx
cmovne eax, ebx
mov dword [rdx + rcx + 0x10], eax
test dword [rdx + rcx + 0x14], eax
jne 0x140018432
xor eax, eax
mov qword [rbp - 0x29], rax
movaps xmmword [rsp + 0x20], xmm0
movsd xmm0, qword [rbp - 0x29]
movsd qword [rsp + 0x30], xmm0
lea rdx, [rsp + 0x20]
mov rcx, qword [r13]
call fcn.140018740
lea rdx, [rbp - 0x11]
mov rcx, qword [r13]
call fcn.140018940
mov rdx, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
test byte [rcx + rdx + 0x10], 6
jne 0x1400183b0
mov rcx, r13
call fcn.1400177e0
test al, al
je 0x1400183b0
mov dword [rsp + 0x40], ebx
mov qword [rsp + 0x48], rbx
mov qword [rbp - 0x79], rbx
mov ecx, 0x38
call fcn.14002e030
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rsp + 0x48], rax
mov qword [rbp - 0x71], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x69], xmm0
mov qword [rbp - 0x59], 7
mov qword [rbp - 0x51], 8
mov dword [rsp + 0x40], 0x3f800000
mov r8, rax
mov edx, 0x10
lea rcx, [rbp - 0x71]
call fcn.140002fc0
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm1, xmmword [0x1400692a0]
movdqu xmmword [rbp - 0x29], xmm1
mov eax, dword [0x140068af0]
mov word [rbp - 0x39], ax
movzx eax, byte [0x140068af2]
mov byte [rbp - 0x37], al
mov byte [rbp - 0x36], bl
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140019250
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017b48
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017b43
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140018464
call fcn.14002e06c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm6, xmmword [0x1400692b0]
movdqu xmmword [rbp - 0x29], xmm6
mov dword [rbp - 0x39], 0x464e492b
mov byte [rbp - 0x35], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140019250
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017bc7
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017bba
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001846a
call fcn.14002e06c
movdqa xmm6, xmmword [0x1400692b0]
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqu xmmword [rbp - 0x29], xmm6
mov dword [rbp - 0x39], 0x464e492d
mov byte [rbp - 0x35], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140019250
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xff800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017c36
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017c31
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140018470
call fcn.14002e06c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm1, xmmword [0x1400692f0]
movdqu xmmword [rbp - 0x29], xmm1
movabs rax, 0x5954494e49464e49
mov qword [rbp - 0x39], rax
mov byte [rbp - 0x31], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140019250
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017cb4
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017caf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140018476
call fcn.14002e06c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm6, xmmword [0x140069300]
movdqu xmmword [rbp - 0x29], xmm6
movsd xmm0, qword [str.INFINITY]
movsd qword [rbp - 0x39], xmm0
movzx eax, byte [0x140068b00]
mov byte [rbp - 0x31], al
mov byte [rbp - 0x30], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140019250
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017d43
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017d36
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001847c
call fcn.14002e06c
movdqa xmm6, xmmword [0x140069300]
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqu xmmword [rbp - 0x29], xmm6
movsd xmm0, qword [str._INFINITY]
movsd qword [rbp - 0x39], xmm0
movzx eax, byte [0x140068b10]
mov byte [rbp - 0x31], al
mov byte [rbp - 0x30], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140019250
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xff800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017dc2
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017dbd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140018482
call fcn.14002e06c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm1, xmmword [0x1400692a0]
movdqu xmmword [rbp - 0x29], xmm1
mov eax, dword [0x140068b14]
mov word [rbp - 0x39], ax
movzx eax, byte [0x140068b16]
mov byte [rbp - 0x37], al
mov byte [rbp - 0x36], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140019250
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7fc00000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017e46
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017e41
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140018488
call fcn.14002e06c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm1, xmmword [0x1400692b0]
movdqu xmmword [rbp - 0x29], xmm1
mov dword [rbp - 0x39], 0x4e414e2b
mov byte [rbp - 0x35], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140019250
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7fc00000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017ebd
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017eb8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001848e
call fcn.14002e06c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm1, xmmword [0x1400692b0]
movdqu xmmword [rbp - 0x29], xmm1
mov dword [rbp - 0x39], 0x4e414e2d
mov byte [rbp - 0x35], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140019250
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xffc00000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017f34
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017f2f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140018494
call fcn.14002e06c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm1, xmmword [0x1400692d0]
movdqu xmmword [rbp - 0x29], xmm1
mov eax, dword [str.1.INF]
mov dword [rbp - 0x39], eax
movzx eax, word [0x140068b1c]
mov word [rbp - 0x35], ax
mov byte [rbp - 0x33], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140019250
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017fb8
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017fb3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001849a
call fcn.14002e06c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm6, xmmword [0x1400692e0]
movdqu xmmword [rbp - 0x29], xmm6
mov rax, qword [str._1.INF]
mov dword [rbp - 0x39], eax
movzx eax, word [0x140068b24]
mov word [rbp - 0x35], ax
movzx eax, byte [0x140068b26]
mov byte [rbp - 0x33], al
mov byte [rbp - 0x32], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140019250
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xff800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x14001804f
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140018042
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400184a0
call fcn.14002e06c
movdqa xmm6, xmmword [0x1400692e0]
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqu xmmword [rbp - 0x29], xmm6
mov rax, qword [str.1.QNAN]
mov dword [rbp - 0x39], eax
movzx eax, word [0x140068b2c]
mov word [rbp - 0x35], ax
movzx eax, byte [0x140068b2e]
mov byte [rbp - 0x33], al
mov byte [rbp - 0x32], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140019250
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7fc00000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x1400180d6
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400180d1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400184a6
call fcn.14002e06c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm1, xmmword [0x1400692f0]
movdqu xmmword [rbp - 0x29], xmm1
movabs rax, 0x4e414e51232e312d
mov qword [rbp - 0x39], rax
mov byte [rbp - 0x31], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140019250
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xffc00000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140018154
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001814f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400184ac
call fcn.14002e06c
lea rsi, [rbp - 0x11]
mov r15, qword [rbp - 0x11]
mov r12, qword [rbp + 7]
cmp r12, 0xf
cmova rsi, r15
lea r14, [rbp - 0x11]
cmova r14, r15
mov rdi, qword [rbp - 1]
add r14, rdi
lea rbx, [rbp - 0x11]
cmp r12, 0xf
cmova rbx, r15
cmp rbx, r14
je 0x1400181af
sub rsi, rbx
nop dword [rax + rax]
movsx ecx, byte [rbx]
call fcn.14003a62c
mov byte [rbx + rsi], al
inc rbx
cmp rbx, r14
jne 0x140018190
mov r12, qword [rbp + 7]
mov rdi, qword [rbp - 1]
mov r15, qword [rbp - 0x11]
lea r8, [rbp - 0x11]
cmp r12, 0xf
cmova r8, r15
movabs rcx, 0xcbf29ce484222325
xor edx, edx
test rdi, rdi
je 0x1400181f4
movabs r9, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rdx + r8]
xor rcx, rax
imul rcx, r9
inc rdx
cmp rdx, rdi
jb 0x1400181e0
and rcx, qword [rbp - 0x59]
add rcx, rcx
mov rsi, qword [rbp - 0x71]
mov rbx, qword [rsi + rcx*8 + 8]
mov r14, qword [rsp + 0x48]
cmp rbx, r14
je 0x14001825a
mov rsi, qword [rsi + rcx*8]
nop dword [rax]
nop word [rax + rax]
lea rdx, [rbx + 0x10]
mov rax, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0xf
jbe 0x140018232
mov rdx, qword [rdx]
lea rcx, [rbp - 0x11]
cmp r12, 0xf
cmova rcx, r15
cmp rdi, rax
jne 0x14001824f
mov r8, rdi
call fcn.140058f20
test eax, eax
je 0x14001825c
cmp rbx, rsi
je 0x14001825a
mov rbx, qword [rbx + 8]
jmp 0x140018220
xor ebx, ebx
test rbx, rbx
je 0x14001836a
cmp rbx, r14
je 0x14001836a
lea r8, [rbp - 0x11]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140018f80
mov rax, qword [rax]
mov eax, dword [rax + 0x30]
mov rcx, qword [rbp - 0x49]
mov dword [rcx], eax
mov rcx, qword [rbp - 0x71]
test rcx, rcx
je 0x1400182e3
mov rax, qword [rbp - 0x61]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400182ce
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400184b2
call fcn.14002e06c
mov qword [rbp - 0x71], 0
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x69], xmm0
mov rdx, qword [rsp + 0x48]
call fcn.140003340
mov edx, 0x38
mov rcx, qword [rsp + 0x48]
call fcn.14002e06c
nop
mov rdx, qword [rbp + 7]
cmp rdx, 0xf
jbe 0x140018338
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140018333
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400184fb
call fcn.14002e06c
mov rax, r13
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.14002e010
mov rbx, qword [rsp + 0x140]
movaps xmm6, xmmword [rsp + 0xe0]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rcx, qword [r13]
mov rax, qword [rcx]
movsxd rdx, dword [rax + 4]
add rdx, rcx
mov eax, 6
mov ecx, 2
cmp qword [rdx + 0x48], 0
cmovne eax, ecx
or eax, dword [rdx + 0x10]
and eax, 0x17
mov dword [rdx + 0x10], eax
and eax, dword [rdx + 0x14]
je 0x14001828d
test al, 4
je 0x1400184b8
lea rbx, str.ios_base::badbit_set
jmp 0x1400184cc
mov rcx, qword [r13]
mov rax, qword [rcx]
movsxd rdx, dword [rax + 4]
add rdx, rcx
mov eax, 6
mov ecx, 2
cmp qword [rdx + 0x48], 0
cmovne eax, ecx
or eax, dword [rdx + 0x10]
and eax, 0x17
mov dword [rdx + 0x10], eax
and eax, dword [rdx + 0x14]
je 0x1400182fd
test al, 4
je 0x1400183ef
lea rbx, str.ios_base::badbit_set
jmp 0x140018403
test cl, al
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x20]
call fcn.1400036a0
mov r8, rax
mov rdx, rbx
lea rcx, [rbp - 0x39]
call fcn.140003ea0
lea rdx, [0x140075328]
lea rcx, [rbp - 0x39]
call fcn.14003001c
int3
mov edx, 1
lea rcx, [rbp - 0x49]
call fcn.1400036a0
mov r8, rax
lea rdx, str.ios_base::badbit_set
lea rcx, [rbp - 0x39]
call fcn.140003ea0
lea rdx, [0x140075328]
lea rcx, [rbp - 0x39]
call fcn.14003001c
nop
call fcn.1400370f4
int3
call fcn.1400370f4
int3
call fcn.1400370f4
int3
call fcn.1400370f4
int3
call fcn.1400370f4
int3
call fcn.1400370f4
int3
call fcn.1400370f4
int3
call fcn.1400370f4
int3
call fcn.1400370f4
int3
call fcn.1400370f4
int3
call fcn.1400370f4
int3
call fcn.1400370f4
int3
call fcn.1400370f4
nop
call fcn.1400370f4
nop
test cl, al
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x20]
call fcn.1400036a0
mov r8, rax
mov rdx, rbx
lea rcx, [rbp - 0x39]
call fcn.140003ea0
lea rdx, [0x140075328]
lea rcx, [rbp - 0x39]
call fcn.14003001c
nop
call fcn.1400370f4
int3