Function at 0x140016690
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 [0x140078080]
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 0x140017122
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.140017430
lea rdx, [rbp - 0x11]
mov rcx, qword [r13]
call fcn.1400178c0
mov rdx, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
test byte [rcx + rdx + 0x10], 6
jne 0x1400170a0
mov rcx, r13
call fcn.1400164d0
test al, al
je 0x1400170a0
mov dword [rsp + 0x40], ebx
mov qword [rsp + 0x48], rbx
mov qword [rbp - 0x79], rbx
mov ecx, 0x38
call fcn.14002ec50
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.140002ec0
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm1, xmmword [0x14006a560]
movdqu xmmword [rbp - 0x29], xmm1
mov eax, dword [0x140069e7c]
mov word [rbp - 0x39], ax
movzx eax, byte [0x140069e7e]
mov byte [rbp - 0x37], al
mov byte [rbp - 0x36], bl
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.1400181d0
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016838
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016833
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017154
call fcn.14002ec8c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm6, xmmword [0x14006a570]
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.1400181d0
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x1400168b7
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400168aa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001715a
call fcn.14002ec8c
movdqa xmm6, xmmword [0x14006a570]
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.1400181d0
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xff800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016926
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016921
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017160
call fcn.14002ec8c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm1, xmmword [0x14006a5b0]
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.1400181d0
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x1400169a4
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001699f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017166
call fcn.14002ec8c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm6, xmmword [0x14006a5c0]
movdqu xmmword [rbp - 0x29], xmm6
movsd xmm0, qword [str.INFINITY]
movsd qword [rbp - 0x39], xmm0
movzx eax, byte [0x140069e88]
mov byte [rbp - 0x31], al
mov byte [rbp - 0x30], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.1400181d0
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016a33
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016a26
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001716c
call fcn.14002ec8c
movdqa xmm6, xmmword [0x14006a5c0]
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 [0x140069e98]
mov byte [rbp - 0x31], al
mov byte [rbp - 0x30], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.1400181d0
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xff800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016ab2
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016aad
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017172
call fcn.14002ec8c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm1, xmmword [0x14006a560]
movdqu xmmword [rbp - 0x29], xmm1
mov eax, dword [0x140069e9c]
mov word [rbp - 0x39], ax
movzx eax, byte [0x140069e9e]
mov byte [rbp - 0x37], al
mov byte [rbp - 0x36], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.1400181d0
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7fc00000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016b36
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016b31
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017178
call fcn.14002ec8c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm1, xmmword [0x14006a570]
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.1400181d0
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7fc00000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016bad
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016ba8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001717e
call fcn.14002ec8c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm1, xmmword [0x14006a570]
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.1400181d0
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xffc00000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016c24
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016c1f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017184
call fcn.14002ec8c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm1, xmmword [0x14006a590]
movdqu xmmword [rbp - 0x29], xmm1
mov eax, dword [str.1.INF]
mov dword [rbp - 0x39], eax
movzx eax, word [0x140069ea4]
mov word [rbp - 0x35], ax
mov byte [rbp - 0x33], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.1400181d0
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016ca8
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016ca3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001718a
call fcn.14002ec8c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm6, xmmword [0x14006a5a0]
movdqu xmmword [rbp - 0x29], xmm6
mov rax, qword [str._1.INF]
mov dword [rbp - 0x39], eax
movzx eax, word [0x140069eac]
mov word [rbp - 0x35], ax
movzx eax, byte [0x140069eae]
mov byte [rbp - 0x33], al
mov byte [rbp - 0x32], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.1400181d0
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xff800000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016d3f
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016d32
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017190
call fcn.14002ec8c
movdqa xmm6, xmmword [0x14006a5a0]
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 [0x140069eb4]
mov word [rbp - 0x35], ax
movzx eax, byte [0x140069eb6]
mov byte [rbp - 0x33], al
mov byte [rbp - 0x32], 0
lea r8, [rbp - 0x39]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.1400181d0
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7fc00000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016dc6
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016dc1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017196
call fcn.14002ec8c
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
movdqa xmm1, xmmword [0x14006a5b0]
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.1400181d0
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xffc00000
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016e44
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016e3f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001719c
call fcn.14002ec8c
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 0x140016e9f
sub rsi, rbx
nop dword [rax + rax]
movsx ecx, byte [rbx]
call fcn.14003b198
mov byte [rbx + rsi], al
inc rbx
cmp rbx, r14
jne 0x140016e80
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 0x140016ee4
movabs r9, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rdx + r8]
xor rcx, rax
imul rcx, r9
inc rdx
cmp rdx, rdi
jb 0x140016ed0
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 0x140016f4a
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 0x140016f22
mov rdx, qword [rdx]
lea rcx, [rbp - 0x11]
cmp r12, 0xf
cmova rcx, r15
cmp rdi, rax
jne 0x140016f3f
mov r8, rdi
call fcn.140059f70
test eax, eax
je 0x140016f4c
cmp rbx, rsi
je 0x140016f4a
mov rbx, qword [rbx + 8]
jmp 0x140016f10
xor ebx, ebx
test rbx, rbx
je 0x14001705a
cmp rbx, r14
je 0x14001705a
lea r8, [rbp - 0x11]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140017f00
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 0x140016fd3
mov rax, qword [rbp - 0x61]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016fbe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400171a2
call fcn.14002ec8c
mov qword [rbp - 0x71], 0
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x69], xmm0
mov rdx, qword [rsp + 0x48]
call fcn.1400031b0
mov edx, 0x38
mov rcx, qword [rsp + 0x48]
call fcn.14002ec8c
nop
mov rdx, qword [rbp + 7]
cmp rdx, 0xf
jbe 0x140017028
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017023
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400171eb
call fcn.14002ec8c
mov rax, r13
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.14002ec30
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 0x140016f7d
test al, 4
je 0x1400171a8
lea rbx, str.ios_base::badbit_set
jmp 0x1400171bc
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 0x140016fed
test al, 4
je 0x1400170df
lea rbx, str.ios_base::badbit_set
jmp 0x1400170f3
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.140003460
mov r8, rax
mov rdx, rbx
lea rcx, [rbp - 0x39]
call fcn.140003c60
lea rdx, [0x140076c20]
lea rcx, [rbp - 0x39]
call fcn.140030c3c
int3
mov edx, 1
lea rcx, [rbp - 0x49]
call fcn.140003460
mov r8, rax
lea rdx, str.ios_base::badbit_set
lea rcx, [rbp - 0x39]
call fcn.140003c60
lea rdx, [0x140076c20]
lea rcx, [rbp - 0x39]
call fcn.140030c3c
nop
call fcn.140037d14
int3
call fcn.140037d14
int3
call fcn.140037d14
int3
call fcn.140037d14
int3
call fcn.140037d14
int3
call fcn.140037d14
int3
call fcn.140037d14
int3
call fcn.140037d14
int3
call fcn.140037d14
int3
call fcn.140037d14
int3
call fcn.140037d14
int3
call fcn.140037d14
int3
call fcn.140037d14
nop
call fcn.140037d14
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.140003460
mov r8, rax
mov rdx, rbx
lea rcx, [rbp - 0x39]
call fcn.140003c60
lea rdx, [0x140076c20]
lea rcx, [rbp - 0x39]
call fcn.140030c3c
nop
call fcn.140037d14
int3