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

Disassembly:
push r14
sub rsp, 0x30
mov rax, qword [rdx + 0x10]
mov r14, rdx
cmp qword [rcx + 0x10], rax
je 0x18002354c
xor al, al
add rsp, 0x30
pop r14
ret
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], rdi
mov rdi, qword [rcx + 8]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r15
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x180023666
movabs r12, 0xcbf29ce484222325
movabs r15, 0x100000001b3
nop
cmp qword [rbx + 0x28], 7
lea r8, [rbx + 0x10]
mov r9, qword [rbx + 0x20]
jbe 0x1800235a3
mov r8, qword [rbx + 0x10]
xor ecx, ecx
mov rdx, r12
add r9, r9
je 0x1800235c4
nop dword [rax]
movzx eax, byte [rcx + r8]
inc rcx
xor rdx, rax
imul rdx, r15
cmp rcx, r9
jb 0x1800235b0
mov rcx, qword [r14 + 0x30]
mov rax, qword [r14 + 0x18]
and rcx, rdx
add rcx, rcx
mov r9, qword [rax + rcx*8 + 8]
cmp r9, qword [r14 + 8]
je 0x180023641
mov rsi, qword [rax + rcx*8]
mov rbp, qword [rbx + 0x28]
mov r11, qword [rbx + 0x20]
nop dword [rax]
cmp qword [r9 + 0x28], 7
lea rax, [r9 + 0x10]
mov rcx, qword [rax + 0x10]
jbe 0x180023602
mov rax, qword [rax]
lea r8, [rbx + 0x10]
cmp rbp, 7
jbe 0x180023610
mov r8, qword [rbx + 0x10]
cmp r11, rcx
jne 0x180023636
mov rdx, r11
test r11, r11
je 0x180023644
sub r8, rax
movzx ecx, word [r8 + rax]
cmp cx, word [rax]
jne 0x180023636
add rax, 2
sub rdx, 1
jne 0x180023620
jmp 0x180023644
cmp r9, rsi
je 0x180023641
mov r9, qword [r9 + 8]
jmp 0x1800235f0
xor r9d, r9d
test r9, r9
je 0x18002368d
lea rdx, [r9 + 0x30]
lea rcx, [rbx + 0x30]
call fcn.1800234f0
test al, al
je 0x18002368d
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x180023590
mov al, 1
mov r12, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x20]
add rsp, 0x30
pop r14
ret
xor al, al
jmp 0x180023668
sub rsp, 0x28
mov r9, rdx
lea rdx, [0x180000000]
mov eax, dword [rdx + rcx*4 + 0x24778]
add rax, rdx
jmp rax
mov rax, qword [r8]
mov rcx, qword [r9]
cmp qword [rcx], rax
sete al
add rsp, 0x28
ret
mov rcx, qword [r9]
mov rdx, r8
add rsp, 0x28
jmp 0x180023530
mov rax, qword [r9]
movabs r9, 0xe38e38e38e38e39
mov rcx, qword [r8 + 8]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rsi
mov rsi, qword [rax + 8]
mov rbx, qword [rax]
mov rax, r9
mov qword [rsp + 0x20], rdi
mov rdi, qword [r8]
sub rcx, rdi
imul rcx
mov rax, r9
mov r8, rdx
sar r8, 2
mov rcx, r8
shr rcx, 0x3f
add r8, rcx
mov rcx, rsi
sub rcx, rbx
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r8
jne 0x1800246c4
cmp rbx, rsi
je 0x1800246ae
mov rdx, rdi
mov rcx, rbx
call fcn.1800234f0
test al, al
je 0x1800246c4
add rbx, 0x48
add rdi, 0x48
cmp rbx, rsi
jne 0x180024692
mov rdi, qword [rsp + 0x20]
mov al, 1
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
add rsp, 0x28
ret
mov rdi, qword [rsp + 0x20]
xor al, al
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
add rsp, 0x28
ret
cmp qword [r8 + 0x18], 7
mov rdx, qword [r9]
mov rax, qword [r8 + 0x10]
jbe 0x1800246eb
mov r8, qword [r8]
cmp qword [rdx + 0x18], 7
mov rcx, qword [rdx + 0x10]
jbe 0x1800246f9
mov rdx, qword [rdx]
cmp rcx, rax
jne 0x18002472c
test rcx, rcx
je case.0x180024608.0
sub rdx, r8
nop word [rax + rax]
movzx eax, word [rdx + r8]
cmp ax, word [r8]
jne 0x18002472c
add r8, 2
sub rcx, 1
jne 0x180024710
mov al, 1
add rsp, 0x28
ret
xor al, al
add rsp, 0x28
ret
movzx eax, byte [r8]
mov rcx, qword [r9]
cmp byte [rcx], al
sete al
add rsp, 0x28
ret
mov eax, dword [r8]
mov rcx, qword [r9]
cmp dword [rcx], eax
sete al
add rsp, 0x28
ret
mov rax, qword [r9]
movss xmm0, dword [rax]
ucomiss xmm0, dword [r8]
jp 0x18002472c
jne 0x18002472c
mov al, 1
add rsp, 0x28
ret
mov rax, qword [r9]
movsd xmm0, qword [rax]
ucomisd xmm0, qword [r8]
jmp 0x18002475f