Function at 0x14003c640
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, 0xe0
mov rax, qword [0x1400a1080]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov qword [rbp - 0x31], rdx
mov rdi, rcx
mov qword [rbp - 0x39], rcx
xor ebx, ebx
mov qword [rbp - 9], rbx
mov qword [rbp + 7], rbx
mov qword [rbp + 0xf], 0xf
mov byte [rbp - 9], bl
mov rdx, qword [rcx]
mov rax, qword [rdx]
movsxd rcx, dword [rax + 4]
add rcx, rdx
mov edx, 4
cmp qword [rcx + 0x48], rbx
cmovne edx, ebx
xor r8d, r8d
call fcn.140001d60
xorps xmm0, xmm0
xor eax, eax
mov qword [rbp - 0x19], rax
movaps xmmword [rsp + 0x20], xmm0
movsd xmm0, qword [rbp - 0x19]
movsd qword [rsp + 0x30], xmm0
lea rdx, [rsp + 0x20]
mov rcx, qword [rdi]
call fcn.14003d050
lea rdx, [rbp - 9]
mov rcx, qword [rdi]
call fcn.140008eb0
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
test byte [rdx + rax + 0x10], 6
jne 0x14003cf62
mov rcx, rdi
call fcn.14003c450
test al, al
je 0x14003cf62
xorps xmm0, xmm0
movss dword [rbp - 0x79], xmm0
mov qword [rbp - 0x71], rbx
mov qword [rbp - 0x69], rbx
lea ecx, [rbx + 0x38]
call fcn.1400520b8
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbp - 0x71], rax
mov qword [rbp - 0x61], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x59], xmm0
mov qword [rbp - 0x49], 7
mov qword [rbp - 0x41], 8
movss xmm0, dword [0x140094400]
movss dword [rbp - 0x79], xmm0
mov r8, rax
lea edx, [rbx + 0x10]
lea rcx, [rbp - 0x61]
call fcn.140007130
nop
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], 0xf
mov byte [rbp - 0x29], bl
lea r8d, [rbx + 3]
lea rdx, [0x140093d84]
lea rcx, [rbp - 0x29]
call fcn.140006ee0
nop
lea r8, [rbp - 0x29]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.14003d730
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x14003c7da
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003c7d5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003cff4
call fcn.1400520b0
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], 0xf
mov byte [rbp - 0x29], 0
mov r8d, 4
lea rdx, str.INF
lea rcx, [rbp - 0x29]
call fcn.140006ee0
nop
lea r8, [rbp - 0x29]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.14003d730
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x14003c85c
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003c857
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003cffa
call fcn.1400520b0
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], 0xf
mov byte [rbp - 0x29], 0
mov r8d, 4
lea rdx, str._INF
lea rcx, [rbp - 0x29]
call fcn.140006ee0
nop
lea r8, [rbp - 0x29]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.14003d730
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xff800000
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x14003c8de
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003c8d9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003d000
call fcn.1400520b0
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], 0xf
mov byte [rbp - 0x29], 0
mov r8d, 8
lea rdx, str.INFINITY
lea rcx, [rbp - 0x29]
call fcn.140006ee0
nop
lea r8, [rbp - 0x29]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.14003d730
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x14003c960
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003c95b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003d006
call fcn.1400520b0
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], 0xf
mov byte [rbp - 0x29], 0
mov r8d, 9
lea rdx, [0x140093d98]
lea rcx, [rbp - 0x29]
call fcn.140006ee0
nop
lea r8, [rbp - 0x29]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.14003d730
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x14003c9e2
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003c9dd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003d00c
call fcn.1400520b0
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], 0xf
mov byte [rbp - 0x29], 0
mov r8d, 9
lea rdx, str._INFINITY
lea rcx, [rbp - 0x29]
call fcn.140006ee0
nop
lea r8, [rbp - 0x29]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.14003d730
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xff800000
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x14003ca64
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003ca5f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003d012
call fcn.1400520b0
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], 0xf
mov byte [rbp - 0x29], 0
mov r8d, 3
lea rdx, [0x140093db4]
lea rcx, [rbp - 0x29]
call fcn.140006ee0
nop
lea r8, [rbp - 0x29]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.14003d730
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7fc00000
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x14003cae6
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003cae1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003d018
call fcn.1400520b0
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], 0xf
mov byte [rbp - 0x29], 0
mov r8d, 4
lea rdx, str.NAN
lea rcx, [rbp - 0x29]
call fcn.140006ee0
nop
lea r8, [rbp - 0x29]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.14003d730
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7fc00000
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x14003cb68
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003cb63
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003d01e
call fcn.1400520b0
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], 0xf
mov byte [rbp - 0x29], 0
mov r8d, 4
lea rdx, str._NAN
lea rcx, [rbp - 0x29]
call fcn.140006ee0
nop
lea r8, [rbp - 0x29]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.14003d730
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xffc00000
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x14003cbea
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003cbe5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003d024
call fcn.1400520b0
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], 0xf
mov byte [rbp - 0x29], 0
mov r15d, 6
mov r8d, r15d
lea rdx, str.1.INF
lea rcx, [rbp - 0x29]
call fcn.140006ee0
nop
lea r8, [rbp - 0x29]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.14003d730
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7f800000
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x14003cc6f
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003cc6a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003d02a
call fcn.1400520b0
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], 0xf
mov byte [rbp - 0x29], 0
mov r8d, 7
lea rdx, str._1.INF
lea rcx, [rbp - 0x29]
call fcn.140006ee0
nop
lea r8, [rbp - 0x29]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.14003d730
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xff800000
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x14003ccf1
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003ccec
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003d030
call fcn.1400520b0
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], 0xf
mov byte [rbp - 0x29], 0
mov r8d, 7
lea rdx, str.1.QNAN
lea rcx, [rbp - 0x29]
call fcn.140006ee0
nop
lea r8, [rbp - 0x29]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.14003d730
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0x7fc00000
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x14003cd73
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003cd6e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003d036
call fcn.1400520b0
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], 0xf
mov byte [rbp - 0x29], 0
mov r8d, 8
lea rdx, str._1.QNAN
lea rcx, [rbp - 0x29]
call fcn.140006ee0
nop
lea r8, [rbp - 0x29]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.14003d730
mov rcx, qword [rax]
mov dword [rcx + 0x30], 0xffc00000
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x14003cdf5
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003cdf0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003d03c
call fcn.1400520b0
lea r14, [rbp - 9]
mov r12, qword [rbp - 9]
mov r13, qword [rbp + 0xf]
cmp r13, 0x10
cmovae r14, r12
lea rax, [rbp - 9]
cmovae rax, r12
mov rsi, qword [rbp + 7]
add rax, rsi
lea rdi, [rbp - 9]
cmp r13, 0x10
cmovae rdi, r12
cmp rdi, rax
je 0x14003ce50
sub r14, rdi
mov rsi, rax
nop
movsx ecx, byte [rdi]
call fcn.140063920
mov byte [rdi + r14], al
inc rdi
cmp rdi, rsi
jne 0x14003ce30
mov r13, qword [rbp + 0xf]
mov rsi, qword [rbp + 7]
mov r12, qword [rbp - 9]
lea rdx, [rbp - 9]
cmp r13, 0x10
cmovae rdx, r12
movabs rcx, 0xcbf29ce484222325
test rsi, rsi
je 0x14003ce93
movabs r8, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rbx + rdx]
xor rcx, rax
imul rcx, r8
inc rbx
cmp rbx, rsi
jb 0x14003ce80
mov rax, qword [rbp - 0x49]
and rax, rcx
add rax, rax
mov rdi, qword [rbp - 0x61]
mov rbx, qword [rdi + rax*8 + 8]
mov r14, qword [rbp - 0x71]
cmp rbx, r14
je 0x14003cf28
mov rdi, qword [rdi + rax*8]
nop dword [rax]
nop word [rax + rax]
lea rdx, [rbx + 0x10]
mov rax, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14003ced2
mov rdx, qword [rdx]
lea rcx, [rbp - 9]
cmp r13, 0x10
cmovae rcx, r12
cmp rsi, rax
jne 0x14003ceef
mov r8, rsi
call fcn.140054a20
test eax, eax
je 0x14003cefa
cmp rbx, rdi
je 0x14003cf28
mov rbx, qword [rbx + 8]
jmp 0x14003cec0
test rbx, rbx
je 0x14003cf28
cmp rbx, r14
je 0x14003cf28
lea r8, [rbp - 9]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.14003d450
mov rcx, qword [rax]
mov eax, dword [rcx + 0x30]
mov rcx, qword [rbp - 0x31]
mov dword [rcx], eax
mov rdi, qword [rbp - 0x39]
jmp 0x14003cf57
mov rdi, qword [rbp - 0x39]
mov r8, qword [rdi]
mov rax, qword [r8]
movsxd rcx, dword [rax + 4]
add rcx, r8
mov eax, 2
cmp qword [rcx + 0x48], 0
cmovne r15d, eax
or r15d, dword [rcx + 0x10]
xor r8d, r8d
mov edx, r15d
call fcn.140001d60
nop
lea rcx, [rbp - 0x79]
call fcn.140002420
jmp 0x14003cf8d
mov rdx, qword [rdi]
mov rax, qword [rdx]
movsxd rcx, dword [rax + 4]
add rcx, rdx
mov edx, 6
mov eax, 2
cmp qword [rcx + 0x48], 0
cmovne edx, eax
or edx, dword [rcx + 0x10]
xor r8d, r8d
call fcn.140001d60
nop
mov rdx, qword [rbp + 0xf]
cmp rdx, 0x10
jb 0x14003cfc4
inc rdx
mov rcx, qword [rbp - 9]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003cfbf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003cfee
call fcn.1400520b0
mov rax, rdi
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.140052090
mov rbx, qword [rsp + 0x130]
add rsp, 0xe0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1400622c8
nop
call fcn.1400622c8
nop
call fcn.1400622c8
int3
call fcn.1400622c8
int3
call fcn.1400622c8
int3
call fcn.1400622c8
int3
call fcn.1400622c8
int3
call fcn.1400622c8
int3
call fcn.1400622c8
int3
call fcn.1400622c8
int3
call fcn.1400622c8
int3
call fcn.1400622c8
int3
call fcn.1400622c8
int3
call fcn.1400622c8
int3