Function at 0x140015960
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 0x1400163f4
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 0x140016372
mov rcx, r13
call fcn.1400164d0
test al, al
je 0x140016372
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.140018790
mov rcx, qword [rax]
movabs rsi, 0x7ff0000000000000
mov qword [rcx + 0x30], rsi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140015b0f
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015b0a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016426
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.140018790
mov rcx, qword [rax]
mov qword [rcx + 0x30], rsi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140015b8b
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015b7e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001642c
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.140018790
mov rcx, qword [rax]
movabs r14, 0xfff0000000000000
mov qword [rcx + 0x30], r14
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140015c01
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015bfc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016432
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.140018790
mov rcx, qword [rax]
mov qword [rcx + 0x30], rsi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140015c7c
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015c77
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016438
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.140018790
mov rcx, qword [rax]
mov qword [rcx + 0x30], rsi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140015d08
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015cfb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001643e
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.140018790
mov rcx, qword [rax]
mov qword [rcx + 0x30], r14
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140015d84
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015d7f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016444
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.140018790
mov rcx, qword [rax]
movabs rdi, 0x7ff8000000000000
mov qword [rcx + 0x30], rdi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140015e0f
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015e0a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001644a
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.140018790
mov rcx, qword [rax]
mov qword [rcx + 0x30], rdi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140015e83
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015e7e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016450
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.140018790
mov rcx, qword [rax]
movabs rbx, 0xfff8000000000000
mov qword [rcx + 0x30], rbx
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140015f01
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015efc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016456
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.140018790
mov rcx, qword [rax]
mov qword [rcx + 0x30], rsi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140015f82
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015f7d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001645c
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.140018790
mov rcx, qword [rax]
mov qword [rcx + 0x30], r14
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016016
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016009
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016462
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.140018790
mov rcx, qword [rax]
mov qword [rcx + 0x30], rdi
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x14001609a
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016095
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016468
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.140018790
mov rcx, qword [rax]
mov qword [rcx + 0x30], rbx
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x140016115
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016110
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001646e
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 0x14001616f
sub rsi, rbx
nop dword [rax]
movsx ecx, byte [rbx]
call fcn.14003b198
mov byte [rbx + rsi], al
inc rbx
cmp rbx, r14
jne 0x140016150
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 0x1400161b4
movabs r9, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rdx + r8]
xor rcx, rax
imul rcx, r9
inc rdx
cmp rdx, rdi
jb 0x1400161a0
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 0x14001621a
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 0x1400161f2
mov rdx, qword [rdx]
lea rcx, [rbp - 0x11]
cmp r12, 0xf
cmova rcx, r15
cmp rdi, rax
jne 0x14001620f
mov r8, rdi
call fcn.140059f70
test eax, eax
je 0x14001621c
cmp rbx, rsi
je 0x14001621a
mov rbx, qword [rbx + 8]
jmp 0x1400161e0
xor ebx, ebx
test rbx, rbx
je 0x14001632c
cmp rbx, r14
je 0x14001632c
lea r8, [rbp - 0x11]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.1400184c0
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 0x1400162a5
mov rax, qword [rbp - 0x61]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016290
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016474
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 0x1400162fa
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400162f5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400164bd
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 0x14001624f
test al, 4
je 0x14001647a
lea rbx, str.ios_base::badbit_set
jmp 0x14001648e
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 0x1400162bf
test al, 4
je 0x1400163b1
lea rbx, str.ios_base::badbit_set
jmp 0x1400163c5
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