Function at 0x14002dab0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xa0
mov qword [rbp - 0x11], 0xfffffffffffffffe
mov qword [rsp + 0xf0], rbx
mov rax, qword [0x1401c3e90]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov r10, rdx
mov rsi, rcx
mov qword [rbp - 9], rcx
xor edi, edi
mov dword [rbp - 0x21], edi
mov byte [rcx + 8], dil
and dword [rcx + 8], 0xfffffeff
mov qword [rcx + 0x10], rdi
mov dword [rbp - 0x21], 1
mov r8d, dword [0x1401cbd80]
lea ecx, [r8 + 1]
imul ecx, r8d
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 3
sub ecx, eax
cmp ecx, 3
jne 0x14002dbde
mov r9d, edi
nop
mov ecx, r9d
and ecx, 1
dec ecx
not ecx
and ecx, r8d
mov eax, r9d
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, r8d
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, r8d
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, r8d
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, r8d
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, r8d
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, r8d
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, r8d
sar ecx, 1
xor eax, ecx
add r8d, eax
inc r9d
cmp r9d, 0x100
jl 0x14002db40
mov dword [0x1401cbd80], r8d
mov rdx, r10
lea rcx, [rbp - 1]
call fcn.140023360
mov rbx, rax
mov r14d, dword [rbp - 0x39]
and r14d, 0xffffff04
or r14d, 4
mov dword [rbp - 0x39], r14d
bts r14d, 8
mov dword [rbp - 0x39], r14d
mov qword [rbp - 0x31], rdi
mov eax, dword [0x1401cde48]
lea r12, vtable.Json::ValueAllocator.0
lea r13, vtable.Json::DefaultValueAllocator.0
test al, 1
jne 0x14002dc49
or eax, 1
mov dword [0x1401cde48], eax
mov qword [0x1401cdd48], r12
mov qword [0x1401cdd48], r13
lea rcx, [0x140127410]
call fcn.1400d1d90
nop
mov rdx, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 0x10
jb 0x14002dc57
mov rbx, qword [rbx]
mov rcx, qword [0x1401c7030]
mov rax, qword [rcx]
mov r8d, edx
mov rdx, rbx
call qword [rax + 0x18]
mov r15, rax
mov qword [rbp - 0x41], rax
lea rdx, str.errorDesc
mov rcx, rsi
call fcn.14003bd90
mov rdi, rax
lea rdx, [rbp - 0x41]
lea rcx, [rbp - 0x59]
call fcn.14003b1f0
nop
movsx ecx, byte [rdi + 8]
movzx eax, byte [rbp - 0x51]
mov byte [rdi + 8], al
mov r8d, dword [rbp - 0x51]
mov eax, r8d
xor eax, ecx
movzx eax, al
xor r8d, eax
mov dword [rbp - 0x51], r8d
mov rbx, qword [rdi]
mov rax, qword [rbp - 0x59]
mov qword [rdi], rax
mov qword [rbp - 0x59], rbx
mov ecx, dword [rdi + 8]
mov edx, ecx
shl edx, 0x17
sar edx, 0x1f
mov eax, r8d
xor eax, ecx
and eax, 0x100
xor eax, ecx
mov dword [rdi + 8], eax
shl edx, 8
xor edx, r8d
and edx, 0x100
xor r8d, edx
mov dword [rbp - 0x51], r8d
movsx eax, r8b
cmp eax, 4
je 0x14002dd2c
add eax, 0xfffffffa
cmp eax, 1
ja 0x14002dd71
mov qword [rbp - 0x29], rbx
test rbx, rbx
je 0x14002dd71
mov r8, qword [rbx]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp - 0x19]
mov rcx, rbx
call fcn.14003ca30
nop
mov rcx, qword [rbx]
call fcn.1400d1660
mov rcx, rbx
call fcn.1400d1660
jmp 0x14002dd71
bt r8d, 8
jae 0x14002dd71
mov eax, dword [0x1401cde48]
test al, 1
jne 0x14002dd61
or eax, 1
mov dword [0x1401cde48], eax
mov qword [0x1401cdd48], r12
mov qword [0x1401cdd48], r13
lea rcx, [0x140127410]
call fcn.1400d1d90
nop
mov rcx, qword [0x1401c7030]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + 0x20]
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x14002dd9b
lea rbx, [rcx - 8]
lea r9, [0x14003ae10]
mov r8d, dword [rbx]
mov edx, 8
call fcn.1400d1b94
mov rcx, rbx
call fcn.1400d272c
nop
movsx eax, byte [rbp - 0x39]
cmp eax, 4
je 0x14002dddd
add eax, 0xfffffffa
cmp eax, 1
ja 0x14002de23
mov qword [rbp - 0x19], r15
test r15, r15
je 0x14002de23
mov r8, qword [r15]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp - 0x29]
mov rcx, r15
call fcn.14003ca30
nop
mov rcx, qword [r15]
call fcn.1400d1660
mov rcx, r15
call fcn.1400d1660
jmp 0x14002de23
bt r14d, 8
jae 0x14002de23
mov eax, dword [0x1401cde48]
test al, 1
jne 0x14002de12
or eax, 1
mov dword [0x1401cde48], eax
mov qword [0x1401cdd48], r12
mov qword [0x1401cdd48], r13
lea rcx, [0x140127410]
call fcn.1400d1d90
nop
mov rcx, qword [0x1401c7030]
mov rax, qword [rcx]
mov rdx, r15
call qword [rax + 0x20]
nop
cmp qword [rbp + 0x17], 0x10
jb 0x14002de33
mov rcx, qword [rbp - 1]
call fcn.1400d1660
mov qword [rbp + 0x17], 0xf
xor eax, eax
mov qword [rbp + 0xf], rax
mov byte [rbp - 1], al
mov r14d, dword [rbp - 0x39]
and r14d, 0xffffff05
or r14d, 5
mov dword [rbp - 0x39], r14d
mov qword [rbp - 0x31], rax
mov byte [rbp - 0x41], al
lea rdx, str.result
mov rcx, rsi
call fcn.14003bd90
mov rdi, rax
lea rdx, [rbp - 0x41]
lea rcx, [rbp - 0x59]
call fcn.14003b1f0
nop
movsx ecx, byte [rdi + 8]
movzx eax, byte [rbp - 0x51]
mov byte [rdi + 8], al
mov r8d, dword [rbp - 0x51]
mov eax, r8d
xor eax, ecx
movzx eax, al
xor r8d, eax
mov dword [rbp - 0x51], r8d
mov rbx, qword [rdi]
mov rax, qword [rbp - 0x59]
mov qword [rdi], rax
mov qword [rbp - 0x59], rbx
mov ecx, dword [rdi + 8]
mov edx, ecx
shl edx, 0x17
sar edx, 0x1f
mov eax, r8d
xor eax, ecx
and eax, 0x100
xor eax, ecx
mov dword [rdi + 8], eax
shl edx, 8
xor edx, r8d
and edx, 0x100
xor r8d, edx
mov dword [rbp - 0x51], r8d
movsx eax, r8b
cmp eax, 4
je 0x14002df19
add eax, 0xfffffffa
cmp eax, 1
ja 0x14002df5e
mov qword [rbp - 0x19], rbx
test rbx, rbx
je 0x14002df5e
mov r8, qword [rbx]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp - 0x29]
mov rcx, rbx
call fcn.14003ca30
nop
mov rcx, qword [rbx]
call fcn.1400d1660
mov rcx, rbx
call fcn.1400d1660
jmp 0x14002df5e
bt r8d, 8
jae 0x14002df5e
mov eax, dword [0x1401cde48]
test al, 1
jne 0x14002df4e
or eax, 1
mov dword [0x1401cde48], eax
mov qword [0x1401cdd48], r12
mov qword [0x1401cdd48], r13
lea rcx, [0x140127410]
call fcn.1400d1d90
nop
mov rcx, qword [0x1401c7030]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + 0x20]
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x14002df88
lea rbx, [rcx - 8]
lea r9, [0x14003ae10]
mov r8d, dword [rbx]
mov edx, 8
call fcn.1400d1b94
mov rcx, rbx
call fcn.1400d272c
nop
movsx eax, byte [rbp - 0x39]
cmp eax, 4
je 0x14002dfce
add eax, 0xfffffffa
cmp eax, 1
ja 0x14002e014
mov rbx, qword [rbp - 0x41]
mov qword [rbp - 0x19], rbx
test rbx, rbx
je 0x14002e014
mov r8, qword [rbx]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp - 0x29]
mov rcx, rbx
call fcn.14003ca30
nop
mov rcx, qword [rbx]
call fcn.1400d1660
mov rcx, rbx
call fcn.1400d1660
jmp 0x14002e014
bt r14d, 8
jae 0x14002e014
mov eax, dword [0x1401cde48]
test al, 1
jne 0x14002e003
or eax, 1
mov dword [0x1401cde48], eax
mov qword [0x1401cdd48], r12
mov qword [0x1401cdd48], r13
lea rcx, [0x140127410]
call fcn.1400d1d90
nop
mov rcx, qword [0x1401c7030]
mov rax, qword [rcx]
mov rdx, qword [rbp - 0x41]
call qword [rax + 0x20]
mov rax, rsi
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.1400d1680
mov rbx, qword [rsp + 0xf0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret