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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x238
movaps xmmword [rsp + 0x220], xmm6
mov rdi, r9
mov qword [rsp + 0x70], r8
mov qword [rsp + 0xe8], rdx
mov rbx, rcx
movabs r12, 0x100000001b3
xorps xmm6, xmm6
movaps xmmword [rsp + 0x60], xmm6
movaps xmmword [rsp + 0x50], xmm6
lea rax, [rcx + 0xb8]
mov qword [rsp + 0x80], rax
movups xmm0, xmmword [rcx + 0xb8]
movaps xmmword [rsp + 0x60], xmm0
lea rax, [rsp + 0xa0]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0x88], r9
mov qword [rsp + 0x78], rcx
jmp 0x140054995
mov rdx, rcx
xor r14d, r14d
movabs rax, 0x7fffffffffffffff
and rdx, rax
sete r14b
or r14, rdx
lea rax, [rsp + 0x100]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x50]
lea rdx, str.0l_b_
mov r8, r14
lea r9, [rsp + 0x90]
call fcn.14000bf50
inc qword [rsp + 0x58]
nop word [rax + rax]
mov rbx, qword [rsp + 0x78]
mov rcx, rbx
call fcn.1400535b0
test al, al
jne 0x1400550dc
mov rax, qword [rsp + 0xe8]
cmp qword [rbx + 0x98], rax
je 0x1400550dc
movaps xmmword [rsp + 0xf0], xmm6
mov rcx, rbx
mov rdx, qword [rsp + 0x80]
lea r8, [rsp + 0xf0]
mov r9, rdi
call fcn.1400546d0
test rax, rax
jne 0x1400550fa
movaps xmm0, xmmword [rsp + 0xf0]
movups xmmword [rsp + 0x90], xmm0
mov rax, qword [rbx + 0x90]
mov rsi, qword [rbx + 0x98]
movups xmm0, xmmword [rbx + 0xa0]
movups xmm1, xmmword [rbx + 0x80]
movups xmmword [rbx + 0x50], xmm1
mov qword [rbx + 0x60], rax
mov qword [rbx + 0x68], rsi
movups xmmword [rbx + 0x70], xmm0
movaps xmmword [rsp + 0xc0], xmm6
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm6
mov rcx, rbx
mov rdx, qword [rsp + 0xe0]
call fcn.140048d50
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmm1, xmmword [rsp + 0xc0]
movups xmmword [rbx + 0x80], xmm0
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rbx + 0x90], xmm0
movups xmmword [rbx + 0xa0], xmm1
cmp rsi, 0xb
jne 0x140055215
movaps xmmword [rsp + 0x150], xmm6
movaps xmmword [rsp + 0x140], xmm6
movaps xmmword [rsp + 0x130], xmm6
mov rcx, rbx
lea rdx, [rsp + 0x130]
mov r8, rdi
call fcn.140053660
test rax, rax
jne 0x140055353
movaps xmm0, xmmword [rsp + 0x130]
movaps xmm1, xmmword [rsp + 0x140]
movaps xmm2, xmmword [rsp + 0x150]
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0x110], xmm1
movaps xmmword [rsp + 0x120], xmm2
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0xd8], rcx
and rcx, 0xffffffffffffffc0
movabs rax, 0x9e3779b97f4a7c15
mov qword [rsp + 0x48], rcx
add rax, rcx
mov rcx, rax
shr rcx, 0x1e
xor rcx, rax
movabs rax, 0xbf58476d1ce4e5b9
imul rcx, rax
mov rax, rcx
shr rax, 0x1b
xor rax, rcx
movabs rcx, 0x94d049bb133111eb
imul rax, rcx
mov r8, rax
shr r8, 0x1f
xor r8, rax
mov rax, qword [rsp + 0x98]
movabs rcx, 0xcbf29ce484222325
add r8, rcx
test rax, rax
jle 0x140054be0
mov rcx, qword [rsp + 0x90]
cmp rax, 4
jb 0x140054ba9
mov rdx, rax
and rdx, 0xfffffffffffffffc
nop word cs:[rax + rax]
movzx r9d, byte [rcx]
xor r9, r8
imul r9, r12
movzx r8d, byte [rcx + 1]
xor r8, r9
imul r8, r12
movzx r9d, byte [rcx + 2]
xor r9, r8
imul r9, r12
movzx r8d, byte [rcx + 3]
xor r8, r9
imul r8, r12
add rcx, 4
add rdx, 0xfffffffffffffffc
jne 0x140054b70
mov r9d, eax
mov rdx, r8
and r9d, 3
je 0x140054be3
xor r10d, r10d
nop dword [rax + rax]
movzx edx, byte [rcx + r10]
xor rdx, r8
imul rdx, r12
inc r10
mov r8, rdx
cmp r9, r10
jne 0x140054bc0
jmp 0x140054be3
mov rdx, r8
xor r8d, r8d
movabs rcx, 0x7fffffffffffffff
and rdx, rcx
sete cl
mov rbp, qword [rsp + 0x58]
test rbp, rbp
je 0x140054ce0
mov r8b, cl
mov r13d, 1
mov rcx, qword [rsp + 0xd8]
shl r13, cl
or rdx, r8
test rcx, rcx
cmove r13, rcx
lea r9, [r13 - 1]
mov rcx, rdx
and rcx, r9
mov rsi, r13
shl rsi, 4
add rsi, qword [rsp + 0x48]
mov rbx, r13
shl rbx, 6
add rbx, rsi
mov r15, qword [rbx + rcx*8]
test r15, r15
je 0x140054ce0
mov r10, r13
sub r10, rcx
mov r8, qword [rsp + 0x90]
xor r11d, r11d
jmp 0x140054c82
inc rcx
and rcx, r9
inc r11
mov r15, qword [rbx + rcx*8]
test r15, r15
je 0x140054ce0
lea rdi, [r10 + rcx]
and rdi, r9
cmp r11, rdi
ja 0x140054ce0
cmp r15, rdx
jne 0x140054c70
mov rdi, rcx
shl rdi, 4
mov r14, qword [rsp + 0x48]
cmp qword [r14 + rdi + 8], rax
jne 0x140054c70
test rax, rax
je 0x140054cd3
mov r14, qword [rsp + 0x48]
mov r15, qword [r14 + rdi]
cmp r15, r8
je 0x140054cd3
xor edi, edi
nop dword [rax + rax]
movzx r14d, byte [r15 + rdi]
cmp r14b, byte [r8 + rdi]
jne 0x140054c70
inc rdi
cmp rax, rdi
jne 0x140054cc0
shl rcx, 6
add rcx, rsi
jne 0x1400554d4
test rax, rax
mov rdi, qword [rsp + 0x88]
je 0x140054980
inc rbp
mov qword [rsp + 0x20], rdi
lea rcx, [rsp + 0x50]
lea rdx, str.0l_b_
mov r8, rbp
lea r9, str.c:_programs_odin_core_encoding_json_parser.odin
call fcn.14000dc90
cmp al, 1
je 0x140055495
mov rdx, qword [rsp + 0x50]
mov rax, rdx
and rax, 0xffffffffffffffc0
movabs rcx, 0x9e3779b97f4a7c15
add rcx, rax
mov r8, rcx
shr r8, 0x1e
xor r8, rcx
movabs rcx, 0xbf58476d1ce4e5b9
imul r8, rcx
mov rcx, r8
shr rcx, 0x1b
xor rcx, r8
movabs r8, 0x94d049bb133111eb
imul rcx, r8
mov r8, rcx
shr r8, 0x1f
xor r8, rcx
mov rbp, qword [rsp + 0x98]
movabs rcx, 0xcbf29ce484222325
add r8, rcx
test rbp, rbp
jle 0x140054e19
mov rcx, qword [rsp + 0x90]
cmp rbp, 4
jb 0x140054de9
mov r9, rbp
and r9, 0xfffffffffffffffc
nop word cs:[rax + rax]
movzx r10d, byte [rcx]
xor r10, r8
imul r10, r12
movzx r8d, byte [rcx + 1]
xor r8, r10
imul r8, r12
movzx r10d, byte [rcx + 2]
xor r10, r8
imul r10, r12
movzx r8d, byte [rcx + 3]
xor r8, r10
imul r8, r12
add rcx, 4
add r9, 0xfffffffffffffffc
jne 0x140054db0
mov r10d, ebp
mov r9, r8
and r10d, 3
je 0x140054e1c
xor r11d, r11d
nop dword [rax + rax]
movzx r9d, byte [rcx + r11]
xor r9, r8
imul r9, r12
inc r11
mov r8, r9
cmp r10, r11
jne 0x140054e00
jmp 0x140054e1c
mov r9, r8
xor r14d, r14d
movabs rcx, 0x7fffffffffffffff
and r9, rcx
sete r14b
or r14, r9
mov r8, qword [rsp + 0x58]
mov ecx, edx
and ecx, 0x3f
mov qword [rsp + 0x48], r8
test r8, r8
je 0x140054f40
mov r9d, 1
shl r9, cl
test rdx, rdx
cmove r9, rdx
lea r11, [r9 - 1]
mov rdx, r14
and rdx, r11
mov r10, r9
shl r10, 4
add r10, rax
mov rsi, r9
shl rsi, 6
add rsi, r10
mov r13, qword [rsi + rdx*8]
test r13, r13
je 0x140054f40
sub r9, rdx
mov rbx, qword [rsp + 0x90]
xor r15d, r15d
jmp 0x140054eb6
inc rdx
and rdx, r11
inc r15
mov r13, qword [rsi + rdx*8]
test r13, r13
je 0x140054f40
lea rdi, [r9 + rdx]
and rdi, r11
cmp r15, rdi
ja 0x140054f40
cmp r13, r14
jne 0x140054ea0
mov rdi, rdx
shl rdi, 4
cmp qword [rax + rdi + 8], rbp
jne 0x140054ea0
test rbp, rbp
je 0x140054f04
mov r13, qword [rax + rdi]
cmp r13, rbx
je 0x140054f04
xor edi, edi
nop dword [rax]
movzx r8d, byte [r13 + rdi]
cmp r8b, byte [rbx + rdi]
jne 0x140054ea0
inc rdi
cmp rbp, rdi
jne 0x140054ef0
shl rdx, 6
add rdx, r10
je 0x140054f40
movaps xmm0, xmmword [rsp + 0x100]
movaps xmm1, xmmword [rsp + 0x110]
movaps xmm2, xmmword [rsp + 0x120]
movaps xmmword [rdx + 0x20], xmm2
movaps xmmword [rdx + 0x10], xmm1
movaps xmmword [rdx], xmm0
mov rdi, qword [rsp + 0x88]
jmp 0x140054980
mov eax, 0x4b
shl rax, cl
shr rax, 2
movabs rdx, 0x28f5c28f5c28f5c3
mul rdx
shr rdx, 2
cmp qword [rsp + 0x48], rdx
jae 0x140054f80
mov word [rsp + 0xa0], 0
mov rdi, qword [rsp + 0x88]
jmp 0x140054fd2
cmp rcx, 3
mov eax, 2
cmovb rcx, rax
shl rax, cl
cmp rcx, 0x3f
mov r8d, 0
cmovne r8, rax
mov rdi, qword [rsp + 0x88]
mov qword [rsp + 0x20], rdi
lea rcx, [rsp + 0x50]
lea rdx, str.0l_b_
lea r9, str.c:_programs_odin_core_encoding_json_parser.odin
call fcn.14000dc90
mov byte [rsp + 0xa0], al
mov byte [rsp + 0xa1], 1
mov rax, qword [rsp + 0xe0]
movzx eax, word [rax]
test al, al
jne 0x140054980
test eax, 0x100
je 0x140054949
mov rax, qword [rsp + 0x50]
and rax, 0xffffffffffffffc0
movabs rcx, 0x9e3779b97f4a7c15
add rax, rcx
mov rcx, rax
shr rcx, 0x1e
xor rcx, rax
movabs rax, 0xbf58476d1ce4e5b9
imul rcx, rax
mov rax, rcx
shr rax, 0x1b
xor rax, rcx
movabs rcx, 0x94d049bb133111eb
imul rax, rcx
mov rcx, rax
shr rcx, 0x1f
xor rcx, rax
movabs rax, 0xcbf29ce484222325
add rcx, rax
test rbp, rbp
jle 0x14005492f
mov rax, qword [rsp + 0x90]
cmp rbp, 4
jb 0x1400550a7
mov rdx, rbp
and rdx, 0xfffffffffffffffc
nop dword [rax + rax]
movzx r8d, byte [rax]
xor r8, rcx
imul r8, r12
movzx ecx, byte [rax + 1]
xor rcx, r8
imul rcx, r12
movzx r8d, byte [rax + 2]
xor r8, rcx
imul r8, r12
movzx ecx, byte [rax + 3]
xor rcx, r8
imul rcx, r12
add rax, 4
add rdx, 0xfffffffffffffffc
jne 0x140055070
mov rdx, rcx
and ebp, 3
je 0x140054932
xor r8d, r8d
nop word cs:[rax + rax]
movzx edx, byte [rax + r8]
xor rdx, rcx
imul rdx, r12
inc r8
mov rcx, rdx
cmp rbp, r8
jne 0x1400550c0
jmp 0x140054932
movaps xmm0, xmmword [rsp + 0x50]
mov rax, qword [rsp + 0x70]
movups xmmword [rax], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rax + 0x10], xmm0
xor r14d, r14d
jmp 0x14005565d
mov r14, rax
mov r15, qword [rsp + 0x50]
movaps xmm0, xmmword [rsp + 0x50]
mov rax, qword [rsp + 0x70]
movups xmmword [rax], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rax + 0x10], xmm0
mov esi, 1
mov ecx, r15d
shl rsi, cl
test r15, r15
cmove rsi, r15
test rsi, rsi
jle 0x140055475
and r15, 0xffffffffffffffc0
mov rbx, rsi
shl rbx, 4
add rbx, r15
mov r13, rsi
shl r13, 6
add r13, rbx
or r15, 8
xor ebp, ebp
lea r12, [rsp + 0x1f0]
xorps xmm6, xmm6
jmp 0x140055182
mov rcx, r12
mov rdx, rdi
mov r8, rdi
call fcn.14004f4d0
inc rbp
add rbx, 0x40
add r15, 0x10
cmp rsi, rbp
je 0x140055475
cmp qword [r13 + rbp*8], 0
jle 0x14005516e
mov rax, qword [r15 - 8]
mov rdx, qword [r15]
movaps xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x1f0], xmm0
movaps xmm0, xmmword [rbx + 0x10]
movaps xmmword [rsp + 0x200], xmm0
movaps xmm0, xmmword [rbx + 0x20]
movaps xmmword [rsp + 0x210], xmm0
test rax, rax
je 0x140055160
mov rcx, qword [rsp + 0x80]
mov r10, qword [rcx]
test r10, r10
je 0x140055160
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0xc0]
movaps xmmword [rsp + 0xa0], xmm6
mov qword [rsp + 0x40], rdi
lea r8, [rsp + 0xa0]
mov qword [rsp + 0x38], r8
lea r8, str.c:_programs_odin_core_encoding_json_parser.odin
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rax
mov dl, 1
xor r8d, r8d
xor r9d, r9d
call r10
jmp 0x140055160
mov r14, qword [rsp + 0x50]
movaps xmm0, xmmword [rsp + 0x50]
mov rax, qword [rsp + 0x70]
movups xmmword [rax], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rax + 0x10], xmm0
mov esi, 1
mov ecx, r14d
shl rsi, cl
test r14, r14
cmove rsi, r14
test rsi, rsi
jle 0x14005532d
and r14, 0xffffffffffffffc0
mov rbx, rsi
shl rbx, 4
add rbx, r14
mov r12, rsi
shl r12, 6
add r12, rbx
or r14, 8
xor r13d, r13d
lea r15, [rsp + 0x1c0]
xorps xmm6, xmm6
lea rbp, str.c:_programs_odin_core_encoding_json_parser.odin
jmp 0x1400552a2
mov rcx, r15
mov rdx, rdi
mov r8, rdi
call fcn.14004f4d0
inc r13
add rbx, 0x40
add r14, 0x10
cmp rsi, r13
je 0x14005532d
cmp qword [r12 + r13*8], 0
jle 0x14005528e
mov rax, qword [r14 - 8]
mov rdx, qword [r14]
movaps xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x1c0], xmm0
movaps xmm0, xmmword [rbx + 0x10]
movaps xmmword [rsp + 0x1d0], xmm0
movaps xmm0, xmmword [rbx + 0x20]
movaps xmmword [rsp + 0x1e0], xmm0
test rax, rax
je 0x140055280
mov rcx, qword [rsp + 0x80]
mov r10, qword [rcx]
test r10, r10
je 0x140055280
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0xc0]
movaps xmmword [rsp + 0xa0], xmm6
mov qword [rsp + 0x40], rdi
lea r8, [rsp + 0xa0]
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rax
mov dl, 1
xor r8d, r8d
xor r9d, r9d
call r10
jmp 0x140055280
lea rdx, str.0l_b_
lea r8, str.c:_programs_odin_core_encoding_json_parser.odin
lea rcx, [rsp + 0x50]
mov r9, rdi
call fcn.14000e010
mov r14d, 9
jmp 0x14005565d
mov r14, rax
mov r15, qword [rsp + 0x50]
movaps xmm0, xmmword [rsp + 0x50]
mov rax, qword [rsp + 0x70]
movups xmmword [rax], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rax + 0x10], xmm0
mov esi, 1
mov ecx, r15d
shl rsi, cl
test r15, r15
cmove rsi, r15
test rsi, rsi
jle 0x140055475
and r15, 0xffffffffffffffc0
mov rbx, rsi
shl rbx, 4
add rbx, r15
mov r13, rsi
shl r13, 6
add r13, rbx
or r15, 8
xor ebp, ebp
lea r12, [rsp + 0x190]
xorps xmm6, xmm6
jmp 0x1400553e2
mov rcx, r12
mov rdx, rdi
mov r8, rdi
call fcn.14004f4d0
inc rbp
add rbx, 0x40
add r15, 0x10
cmp rsi, rbp
je 0x140055475
cmp qword [r13 + rbp*8], 0
jle 0x1400553ce
mov rax, qword [r15 - 8]
mov rdx, qword [r15]
movaps xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x190], xmm0
movaps xmm0, xmmword [rbx + 0x10]
movaps xmmword [rsp + 0x1a0], xmm0
movaps xmm0, xmmword [rbx + 0x20]
movaps xmmword [rsp + 0x1b0], xmm0
test rax, rax
je 0x1400553c0
mov rcx, qword [rsp + 0x80]
mov r10, qword [rcx]
test r10, r10
je 0x1400553c0
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0xc0]
movaps xmmword [rsp + 0xa0], xmm6
mov qword [rsp + 0x40], rdi
lea r8, [rsp + 0xa0]
mov qword [rsp + 0x38], r8
lea r8, str.c:_programs_odin_core_encoding_json_parser.odin
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rax
mov dl, 1
xor r8d, r8d
xor r9d, r9d
call r10
jmp 0x1400553c0
lea rdx, str.0l_b_
lea r8, str.c:_programs_odin_core_encoding_json_parser.odin
lea rcx, [rsp + 0x50]
mov r9, rdi
call fcn.14000e010
jmp 0x14005565d
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
mov rax, qword [rsp + 0x70]
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax], xmm0
lea rdx, str.0l_b_
lea r8, str.c:_programs_odin_core_encoding_json_parser.odin
lea rcx, [rsp + 0x50]
mov r9, rdi
call fcn.14000e010
mov r14d, 0xb
jmp 0x14005565d
test r8, r8
mov rdi, qword [rsp + 0x88]
je 0x14005553b
mov rcx, qword [rsp + 0x80]
mov r10, qword [rcx]
test r10, r10
je 0x14005553b
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0xc0]
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0x40], rdi
lea rdx, [rsp + 0xa0]
mov qword [rsp + 0x38], rdx
lea rdx, str.c:_programs_odin_core_encoding_json_parser.odin
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r8
mov dl, 1
xor r8d, r8d
xor r9d, r9d
call r10
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0xd8]
mov qword [rax], rcx
mov qword [rax + 8], rbp
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rax + 0x10], xmm0
test r13, r13
jle 0x14005563c
add qword [rsp + 0x48], 8
xor r12d, r12d
lea r15, [rsp + 0x160]
xorps xmm6, xmm6
lea r14, [rsp + 0xa0]
lea rbp, str.c:_programs_odin_core_encoding_json_parser.odin
jmp 0x1400555b4
mov rcx, r15
mov rdx, rdi
mov r8, rdi
call fcn.14004f4d0
inc r12
add rsi, 0x40
add qword [rsp + 0x48], 0x10
cmp r13, r12
je 0x14005563c
cmp qword [rbx + r12*8], 0
jle 0x14005559e
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx - 8]
mov rdx, qword [rcx]
movaps xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x160], xmm0
movaps xmm0, xmmword [rsi + 0x10]
movaps xmmword [rsp + 0x170], xmm0
movaps xmm0, xmmword [rsi + 0x20]
movaps xmmword [rsp + 0x180], xmm0
test rax, rax
je 0x140055590
mov rcx, qword [rsp + 0x80]
mov r10, qword [rcx]
test r10, r10
je 0x140055590
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0xc0]
movaps xmmword [rsp + 0xa0], xmm6
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rax
mov dl, 1
xor r8d, r8d
xor r9d, r9d
call r10
jmp 0x140055590
lea rdx, str.0l_b_
lea r8, str.c:_programs_odin_core_encoding_json_parser.odin
lea rcx, [rsp + 0x50]
mov r9, rdi
call fcn.14000e010
mov r14d, 8
mov rax, r14
movaps xmm6, xmmword [rsp + 0x220]
add rsp, 0x238
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret