Function at 0x140016c70
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 0x140017704
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 0x140017682
mov rcx, r13
call fcn.1400177e0
test al, al
je 0x140017682
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.140019810
mov rcx, qword [rax]
movabs rsi, 0x7ff0000000000000
mov qword [rcx + 0x30], rsi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016e1f
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016e1a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017736
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.140019810
mov rcx, qword [rax]
mov qword [rcx + 0x30], rsi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016e9b
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016e8e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001773c
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.140019810
mov rcx, qword [rax]
movabs r14, 0xfff0000000000000
mov qword [rcx + 0x30], r14
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016f11
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016f0c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017742
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.140019810
mov rcx, qword [rax]
mov qword [rcx + 0x30], rsi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016f8c
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016f87
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017748
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.140019810
mov rcx, qword [rax]
mov qword [rcx + 0x30], rsi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017018
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001700b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001774e
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.140019810
mov rcx, qword [rax]
mov qword [rcx + 0x30], r14
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017094
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001708f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017754
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.140019810
mov rcx, qword [rax]
movabs rdi, 0x7ff8000000000000
mov qword [rcx + 0x30], rdi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x14001711f
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001711a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001775a
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.140019810
mov rcx, qword [rax]
mov qword [rcx + 0x30], rdi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017193
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001718e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017760
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.140019810
mov rcx, qword [rax]
movabs rbx, 0xfff8000000000000
mov qword [rcx + 0x30], rbx
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017211
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001720c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017766
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.140019810
mov rcx, qword [rax]
mov qword [rcx + 0x30], rsi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017292
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001728d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001776c
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.140019810
mov rcx, qword [rax]
mov qword [rcx + 0x30], r14
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017326
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017319
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017772
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.140019810
mov rcx, qword [rax]
mov qword [rcx + 0x30], rdi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x1400173aa
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400173a5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017778
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.140019810
mov rcx, qword [rax]
mov qword [rcx + 0x30], rbx
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140017425
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017420
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001777e
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 0x14001747f
sub rsi, rbx
nop dword [rax]
movsx ecx, byte [rbx]
call fcn.14003a62c
mov byte [rbx + rsi], al
inc rbx
cmp rbx, r14
jne 0x140017460
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 0x1400174c4
movabs r9, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rdx + r8]
xor rcx, rax
imul rcx, r9
inc rdx
cmp rdx, rdi
jb 0x1400174b0
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 0x14001752a
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 0x140017502
mov rdx, qword [rdx]
lea rcx, [rbp - 0x11]
cmp r12, 0xf
cmova rcx, r15
cmp rdi, rax
jne 0x14001751f
mov r8, rdi
call fcn.140058f20
test eax, eax
je 0x14001752c
cmp rbx, rsi
je 0x14001752a
mov rbx, qword [rbx + 8]
jmp 0x1400174f0
xor ebx, ebx
test rbx, rbx
je 0x14001763c
cmp rbx, r14
je 0x14001763c
lea r8, [rbp - 0x11]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140019540
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
mov rcx, qword [rbp - 0x49]
mov qword [rcx], rax
mov rcx, qword [rbp - 0x71]
test rcx, rcx
je 0x1400175b5
mov rax, qword [rbp - 0x61]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400175a0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017784
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 0x14001760a
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017605
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400177cd
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 0x14001755f
test al, 4
je 0x14001778a
lea rbx, str.ios_base::badbit_set
jmp 0x14001779e
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 0x1400175cf
test al, 4
je 0x1400176c1
lea rbx, str.ios_base::badbit_set
jmp 0x1400176d5
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