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

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x58]
sub rsp, 0x158
mov qword [rbp + 0x40], 0xfffffffffffffffe
mov rsi, rdx
mov r14, rcx
cmp qword [rcx], 0
je 0x140024660
mov eax, 2
jmp 0x14002515f
mov rcx, rsi
call fcn.140012e70
mov dword [r14 + 0x78], eax
lea r9, [rbp + 0x20]
lea r8, [rbp + 0x18]
lea rdx, [rbp - 8]
mov rcx, rsi
call fcn.140008fb0
test eax, eax
je 0x14002468e
mov eax, 0x10
jmp 0x14002515f
mov eax, dword [rbp - 8]
mov dword [r14 + 0x7c], eax
mov rdx, qword [rbp + 0x20]
lea rcx, [rbp + 0x30]
call fcn.140026bc0
nop
lea r8, [r14 + 0x80]
lea rdx, [rbp + 0x30]
mov rcx, r14
call fcn.140023fa0
cmp eax, 1
ja 0x14002514e
mov edi, dword [rsi + 0x1920]
mov dword [rbp - 0x78], edi
lea ebx, [rdi + 1]
lea rdx, [rbp + 0xb0]
mov rcx, rsi
call fcn.140012d10
mov ecx, dword [rbp + 0xb0]
test eax, eax
cmovne ecx, ebx
mov dword [rbp + 0xb0], ecx
lea rdx, [rbp + 0xb8]
mov rcx, rsi
call fcn.140012e30
mov ecx, dword [rbp + 0xb8]
test eax, eax
cmovne ecx, ebx
mov dword [rbp + 0xb8], ecx
lea rdx, [rbp - 0x60]
mov rcx, rsi
call fcn.140012d40
mov ecx, dword [rbp - 0x60]
test eax, eax
cmovne ecx, ebx
mov dword [rbp - 0x60], ecx
mov rcx, rsi
call fcn.140012e60
test eax, eax
je 0x140024736
mov byte [r14 + 0x9a], 1
xor r13d, r13d
test edi, edi
je 0x140024b30
xor ebx, ebx
mov qword [rbp - 0x70], rbx
mov edi, dword [rbp + 0xa0]
mov r15d, dword [rbp + 0xa0]
mov r12d, dword [rbp + 0xa0]
mov r14, qword [rbp + 0xa0]
cmp dword [rsi + 0x1920], r13d
ja 0x14002476f
xor edx, edx
jmp 0x14002477b
mov rax, qword [rsi + 0x1aa8]
mov rdx, qword [rax + rbx + 0x28]
lea rcx, [rsp + 0x78]
call fcn.140026c90
nop
cmp dword [rsi + 0x1920], r13d
ja 0x140024793
xor esi, esi
jmp 0x1400247a1
mov rax, qword [rsi + 0x1aa8]
mov esi, dword [rax + rbx + 0x438]
mov ebx, esi
shr ebx, 1
and bl, 1
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x78]
mov rcx, qword [rbp + 0xa0]
call fcn.14001d3d0
cmp eax, 7
jne 0x1400247f4
lea r9, [rsp + 0x60]
movzx r8d, bl
lea rdx, [rsp + 0x78]
mov rcx, qword [rbp + 0xa0]
call fcn.140019950
mov ebx, eax
cmp eax, 1
ja 0x140024c63
mov edx, esi
mov rcx, qword [rsp + 0x60]
call fcn.140022ca0
mov rax, qword [rbp + 0xa8]
mov rcx, qword [rbp - 0x70]
cmp dword [rax + 0x1920], r13d
jbe 0x14002481e
mov rax, qword [rax + 0x1aa8]
mov eax, dword [rax + rcx + 8]
mov dword [rsp + 0x70], eax
mov rax, qword [rbp + 0xa8]
xor ebx, ebx
mov esi, ebx
cmp dword [rsp + 0x70], ebx
jbe 0x140024ab6
mov r8d, ebx
mov qword [rbp - 0x68], rbx
cmp dword [rax + 0x1920], r13d
jbe 0x14002487b
mov rax, qword [rax + 0x1aa8]
add rcx, rax
cmp esi, dword [rcx + 8]
jae 0x14002487b
mov rax, qword [rcx + 0x10]
mov r15d, dword [rax + r8 + 4]
mov edi, dword [rax + r8 + 0x14]
mov rdx, rax
mov r12d, dword [r8 + rax + 0x10]
cmp r12d, 4
jne 0x140024876
mov eax, esi
shl rax, 5
lea r14, [rdx + 8]
add r14, rax
jmp 0x14002487b
mov r14, qword [r8 + rdx + 8]
lea r8, [rsp + 0x68]
mov edx, r15d
mov rcx, qword [rsp + 0x60]
call fcn.14001da20
cmp eax, 0xa
jne 0x140024a07
mov eax, edi
and eax, 0x7000
je 0x140024947
cmp eax, 0x1000
je 0x14002490a
cmp eax, 0x2000
jne 0x14002498f
mov edx, r15d
mov rcx, qword [rsp + 0x60]
test dil, 2
je 0x1400248e6
mov byte [rsp + 0x38], 0
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x28], rbx
mov byte [rsp + 0x20], 1
mov r9d, r12d
mov r8, r14
call fcn.14001a400
jmp 0x14002498f
mov byte [rsp + 0x38], 1
mov dword [rsp + 0x30], r12d
mov qword [rsp + 0x28], r14
mov byte [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
call fcn.14001a400
jmp 0x14002498f
mov eax, dword [r14]
mov edx, r15d
mov rcx, qword [rsp + 0x60]
test dil, 2
je 0x140024931
mov byte [rsp + 0x28], 0
mov dword [rsp + 0x20], ebx
mov r9b, 1
mov r8d, eax
call fcn.140019ef0
jmp 0x14002498f
mov byte [rsp + 0x28], 1
mov dword [rsp + 0x20], eax
xor r9d, r9d
xor r8d, r8d
call fcn.140019ef0
jmp 0x14002498f
mov edx, r15d
mov rcx, qword [rsp + 0x60]
test dil, 2
je 0x140024970
mov byte [rsp + 0x38], 0
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x28], rbx
mov byte [rsp + 0x20], 1
mov r9d, r12d
mov r8, r14
jmp 0x14002498a
mov byte [rsp + 0x38], 1
mov dword [rsp + 0x30], r12d
mov qword [rsp + 0x28], r14
mov byte [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
call fcn.140019d00
lea r8, [rsp + 0x68]
mov edx, r15d
mov rcx, qword [rsp + 0x60]
call fcn.14001da20
test dil, 1
je 0x1400249b0
mov rax, qword [rsp + 0x68]
mov byte [rax + 0xe], 1
mov rcx, qword [rsp + 0x68]
test dil, 0x10
je 0x1400249ca
cmp byte [rcx + 0xd], 0
je 0x1400249ca
mov byte [rcx + 0x11], 1
mov rcx, qword [rsp + 0x68]
cmp dword [rbp + 0xb0], r13d
jne 0x1400249ea
mov eax, edi
and eax, 0x10002
cmp eax, 0x10002
jne 0x1400249ea
mov byte [rcx + 0x10], 1
mov rcx, qword [rsp + 0x68]
test dil, 4
je 0x140024a93
cmp byte [rcx + 0xd], 0
je 0x140024c5e
mov byte [rcx + 0xf], 1
jmp 0x140024a93
test dil, 2
je 0x140024a48
cmp dword [rbp + 0xb0], r13d
jne 0x140024a25
bt edi, 0x10
jae 0x140024a25
mov rax, qword [rsp + 0x68]
mov byte [rax + 0x10], 1
mov rcx, qword [rsp + 0x68]
cmp byte [rcx + 0xc], 0
jne 0x140024a93
mov r8d, r12d
mov rdx, r14
call fcn.140023340
mov ebx, eax
cmp eax, 1
ja 0x140024c63
jmp 0x140024a91
mov rcx, qword [rsp + 0x68]
cmp byte [rcx + 0xd], 0
jne 0x140024a93
mov r8d, r12d
mov rdx, r14
call fcn.140022fd0
mov ebx, eax
cmp eax, 1
ja 0x140024c63
test dil, 4
je 0x140024a82
mov rax, qword [rsp + 0x68]
cmp byte [rax + 0xd], 0
je 0x140024c5e
mov byte [rax + 0xf], 1
test dil, 0x10
je 0x140024a91
mov rax, qword [rsp + 0x68]
mov byte [rax + 0x11], 1
xor ebx, ebx
inc esi
mov r8, qword [rbp - 0x68]
add r8, 0x20
mov qword [rbp - 0x68], r8
cmp esi, dword [rsp + 0x70]
mov rcx, qword [rbp - 0x70]
mov rax, qword [rbp + 0xa8]
jb 0x140024833
mov rax, qword [rsp + 0x60]
mov rcx, qword [rbp + 0xa0]
cmp r13d, dword [rbp + 0xb0]
jne 0x140024ad6
cmp qword [rcx + 0x58], 0
jne 0x140024ad6
mov qword [rcx + 0x58], rax
cmp r13d, dword [rbp + 0xb8]
jne 0x140024aea
cmp qword [rcx + 0x60], 0
jne 0x140024aea
mov qword [rcx + 0x60], rax
cmp r13d, dword [rbp - 0x60]
jne 0x140024afb
cmp qword [rcx + 0x68], 0
jne 0x140024afb
mov qword [rcx + 0x68], rax
lea rcx, [rsp + 0x78]
call fcn.1400275a0
nop
inc r13d
mov rbx, qword [rbp - 0x70]
add rbx, 0x440
mov qword [rbp - 0x70], rbx
mov rsi, qword [rbp + 0xa8]
cmp r13d, dword [rbp - 0x78]
jb 0x140024762
mov r14, qword [rbp + 0xa0]
mov esi, dword [rsi + 0x1ae4]
xor r13d, r13d
mov edi, r13d
mov r12d, 0x811c9dc5
mov r15, qword [rbp + 0xa8]
test esi, esi
je 0x140024e3b
mov r12d, 0x24cf
lea r13d, [r12 - 0x19]
nop dword [rax]
lea rcx, [rsp + 0x78]
call fcn.140026d40
nop
lea rcx, [rbp - 0x18]
call fcn.140026d40
nop
lea rcx, [rbp - 0x28]
call fcn.140026d40
nop
lea rcx, [rbp - 0x38]
call fcn.140026d40
nop
lea rcx, [rbp - 0x48]
call fcn.140026d40
nop
xor ebx, ebx
mov qword [rbp - 0x58], rbx
mov qword [rbp], rbx
lea rax, [rsp + 0x70]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0x28]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x60]
lea r8, [rbp - 0x50]
mov edx, edi
mov rcx, r15
call fcn.140012d90
mov rdx, qword [rbp - 0x50]
lea rcx, [rsp + 0x78]
call fcn.140026ef0
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x140024c15
lea rcx, [rbp - 0x18]
call fcn.140026ef0
mov rdx, qword [rbp - 0x70]
test rdx, rdx
je 0x140024c27
lea rcx, [rbp - 0x28]
call fcn.140026ef0
mov rdx, qword [rbp - 0x68]
test rdx, rdx
je 0x140024c39
lea rcx, [rbp - 0x38]
call fcn.140026ef0
mov edx, ebx
mov r8d, dword [rbp - 0x80]
test r8d, r8d
je 0x140024c8a
mov ecx, edx
mov rax, qword [rsp + 0x78]
movzx r9d, word [rax + rcx*2]
cmp r9w, 0x2a
jne 0x140024c73
mov word [rax + rcx*2], r12w
jmp 0x140024c7f
mov ebx, 2
lea rcx, [rsp + 0x78]
call fcn.1400275a0
nop
jmp 0x140025153
cmp r9w, 0x3f
jne 0x140024c83
mov word [rax + rcx*2], r13w
mov r8d, dword [rbp - 0x80]
inc edx
cmp edx, r8d
jb 0x140024c44
mov rbx, qword [r14 + 0x18]
test rbx, rbx
je 0x140024d35
mov r9d, 0x811c9dc5
test r8d, r8d
je 0x140024cc7
mov rcx, qword [rsp + 0x78]
mov edx, r8d
nop word [rax + rax]
movzx eax, word [rcx]
xor rax, r9
imul r9, rax, 0x1000193
lea rcx, [rcx + 2]
sub rdx, 1
jne 0x140024cb0
imul rax, r9, 0x2001
mov rcx, rax
shr rcx, 7
xor rcx, rax
lea rcx, [rcx + rcx*8]
mov rax, rcx
shr rax, 0x11
xor rcx, rax
imul rax, rcx, 0x21
mov ecx, dword [r14 + 0x30]
mov edx, 1
shl rdx, cl
dec rdx
and rdx, rax
mov rbx, qword [rbx + rdx*8]
test rbx, rbx
je 0x140024d35
lea rdx, [rsp + 0x78]
mov rcx, rbx
call fcn.140027000
test al, al
jne 0x140024d35
mov eax, dword [rbx + 0x18]
shr eax, 0x1f
test al, al
jne 0x140024d35
mov rbx, qword [rbx + 0x28]
lea rdx, [rsp + 0x78]
mov rcx, rbx
call fcn.140027000
test al, al
je 0x140024d16
mov rdx, qword [rbp + 0x28]
lea rcx, [rbp - 0x48]
call fcn.140026ef0
lea r8, [rbp - 0x58]
lea rdx, [rbp - 0x48]
mov rcx, r14
call fcn.14001d3d0
cmp eax, 1
ja 0x1400250d3
mov rdx, qword [rsp + 0x78]
lea rcx, [rbp + 8]
call fcn.140026c90
nop
cmp dword [rbp + 0xa0], 1
sete r10b
cmp dword [rbp - 0x78], 1
sete cl
lea rdx, [rbp - 0x38]
cmp qword [rbp - 0x68], 0
mov eax, 0
cmove rdx, rax
lea r9, [rbp - 0x28]
cmp qword [rbp - 0x70], rax
cmove r9, rax
lea r8, [rbp - 0x18]
cmp qword [rsp + 0x60], rax
cmove r8, rax
lea rax, [rbp]
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x38], eax
mov byte [rsp + 0x30], r10b
mov byte [rsp + 0x28], cl
mov qword [rsp + 0x20], rdx
lea rdx, [rbp + 8]
mov rcx, qword [rbp - 0x58]
call fcn.140019240
mov ebx, eax
lea rcx, [rbp + 8]
call fcn.1400275a0
nop
cmp ebx, 0xc
je 0x140024df5
cmp ebx, 1
ja 0x1400250cc
lea rcx, [rbp - 0x48]
call fcn.1400275a0
nop
lea rcx, [rbp - 0x38]
call fcn.1400275a0
nop
lea rcx, [rbp - 0x28]
call fcn.1400275a0
nop
lea rcx, [rbp - 0x18]
call fcn.1400275a0
nop
lea rcx, [rsp + 0x78]
call fcn.1400275a0
nop
inc edi
cmp edi, esi
jb 0x140024b60
mov r12d, 0x811c9dc5
xor r13d, r13d
mov esi, dword [r15 + 0x234c]
mov edi, r13d
test esi, esi
je 0x1400250c4
nop dword [rax]
lea rcx, [rsp + 0x78]
call fcn.140026d40
nop
lea rcx, [rbp - 0x48]
call fcn.140026d40
nop
lea rcx, [rbp - 0x38]
call fcn.140026d40
nop
lea rcx, [rbp - 0x28]
call fcn.140026d40
nop
lea rcx, [rbp - 0x18]
call fcn.140026d40
nop
mov qword [rbp - 0x50], r13
lea rax, [rbp - 0x78]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x38], rax
lea rax, [rbp]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x60]
lea r8, [rbp - 0x58]
mov edx, edi
mov rcx, r15
call fcn.140012ea0
mov rdx, qword [rbp - 0x58]
lea rcx, [rsp + 0x78]
call fcn.140026ef0
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x140024eff
lea rcx, [rbp - 0x48]
call fcn.140026ef0
mov rdx, qword [rbp - 0x70]
test rdx, rdx
je 0x140024f11
lea rcx, [rbp - 0x38]
call fcn.140026ef0
mov rdx, qword [rbp - 0x68]
test rdx, rdx
je 0x140024f23
lea rcx, [rbp - 0x28]
call fcn.140026ef0
mov rbx, qword [r14 + 0x18]
test rbx, rbx
je 0x140024fcf
mov rdx, r12
mov eax, dword [rbp - 0x80]
test eax, eax
je 0x140024f59
mov rcx, qword [rsp + 0x78]
mov r8d, eax
movzx eax, word [rcx]
xor rax, rdx
imul rdx, rax, 0x1000193
lea rcx, [rcx + 2]
sub r8, 1
jne 0x140024f42
imul rax, rdx, 0x2001
mov rcx, rax
shr rcx, 7
xor rcx, rax
lea rcx, [rcx + rcx*8]
mov rax, rcx
shr rax, 0x11
xor rcx, rax
imul rax, rcx, 0x21
mov ecx, dword [r14 + 0x30]
mov edx, 1
shl rdx, cl
dec rdx
and rdx, rax
mov rbx, qword [rbx + rdx*8]
test rbx, rbx
je 0x140024fcf
lea rdx, [rsp + 0x78]
mov rcx, rbx
call fcn.140027000
test al, al
jne 0x140024fcf
nop dword [rax + rax]
mov eax, dword [rbx + 0x18]
shr eax, 0x1f
test al, al
jne 0x140024fcf
mov rbx, qword [rbx + 0x28]
lea rdx, [rsp + 0x78]
mov rcx, rbx
call fcn.140027000
test al, al
je 0x140024fb0
mov rdx, qword [rbp]
lea rcx, [rbp - 0x18]
call fcn.140026ef0
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x18]
mov rcx, r14
call fcn.14001d3d0
cmp eax, 1
ja 0x140025114
mov rdx, qword [rbp - 0x58]
lea rcx, [rbp + 8]
call fcn.140026c90
nop
cmp dword [rbp + 0xa0], 1
sete r10b
cmp dword [rsp + 0x68], 1
sete cl
lea rdx, [rbp - 0x28]
cmp qword [rbp - 0x68], 0
cmove rdx, r13
lea r9, [rbp - 0x38]
cmp qword [rbp - 0x70], 0
cmove r9, r13
lea r8, [rbp - 0x48]
cmp qword [rsp + 0x60], 0
cmove r8, r13
mov qword [rsp + 0x48], r13
mov eax, dword [rbp - 0x78]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x38], eax
mov byte [rsp + 0x30], r10b
mov byte [rsp + 0x28], cl
mov qword [rsp + 0x20], rdx
lea rdx, [rbp + 8]
mov rcx, qword [rbp - 0x50]
call fcn.140019240
mov ebx, eax
lea rcx, [rbp + 8]
call fcn.1400275a0
nop
cmp ebx, 0xc
je 0x140025087
cmp ebx, 1
ja 0x14002510d
lea rcx, [rbp - 0x18]
call fcn.1400275a0
nop
lea rcx, [rbp - 0x28]
call fcn.1400275a0
nop
lea rcx, [rbp - 0x38]
call fcn.1400275a0
nop
lea rcx, [rbp - 0x48]
call fcn.1400275a0
nop
lea rcx, [rsp + 0x78]
call fcn.1400275a0
nop
inc edi
cmp edi, esi
jb 0x140024e50
mov ebx, r13d
jmp 0x140025153
mov ebx, 2
jmp 0x1400250d8
mov ebx, 0x10
lea rcx, [rbp - 0x48]
call fcn.1400275a0
nop
lea rcx, [rbp - 0x38]
call fcn.1400275a0
nop
lea rcx, [rbp - 0x28]
call fcn.1400275a0
nop
lea rcx, [rbp - 0x18]
call fcn.1400275a0
nop
lea rcx, [rsp + 0x78]
call fcn.1400275a0
nop
jmp 0x140025153
mov ebx, 2
jmp 0x140025119
mov ebx, 0x10
lea rcx, [rbp - 0x18]
call fcn.1400275a0
nop
lea rcx, [rbp - 0x28]
call fcn.1400275a0
nop
lea rcx, [rbp - 0x38]
call fcn.1400275a0
nop
lea rcx, [rbp - 0x48]
call fcn.1400275a0
nop
lea rcx, [rsp + 0x78]
call fcn.1400275a0
nop
jmp 0x140025153
mov ebx, 0x10
lea rcx, [rbp + 0x30]
call fcn.1400275a0
nop
mov eax, ebx
add rsp, 0x158
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret