Function at 0x140054220
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov r12, rcx
mov rax, qword [0x1400ff028]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov rsi, qword [0x14011b480]
cmp rsi, 1
jbe 0x140054d31
mov qword [rsp + 0x38], rsi
mov rcx, rsi
call fcn.14002da66
mov rsi, qword [0x14011b480]
cmp rsi, 1
jbe 0x140054d71
mov rcx, rsi
call fcn.14002db7a
mov r14, qword [0x14011b490]
test r14, r14
je 0x140054cb3
mov rbx, qword [r12 + 8]
mov r13b, 1
test rbx, rbx
je 0x140054bee
mov rcx, rbx
call fcn.140078f80
mov rbp, rax
test rax, rax
sete al
je 0x140054bee
xor ecx, ecx
xor edi, edi
nop word cs:[rax + rax]
movsx rdx, byte [rbx + rcx]
imul rdi, rdi, 0x83
add rdi, rdx
inc rcx
cmp rbp, rcx
jne 0x1400542c0
mov r13d, eax
mov r15, qword [r14 + 8]
movabs rcx, 0x5555555555555555
movabs rsi, 0x3333333333333333
movabs r8, 0xf0f0f0f0f0f0f0f
movabs rdx, 0x101010101010101
test r15, r15
mov qword [rsp + 0x30], r12
je 0x140054c9c
mov byte [rsp + 0x48], r13b
mov rax, r15
shr rax, 1
and rax, rcx
mov rcx, r15
sub rcx, rax
mov rax, rcx
and rax, rsi
shr rcx, 2
and rcx, rsi
add rcx, rax
mov r12, rcx
shr r12, 4
add r12, rcx
and r12, r8
imul r12, rdx
shr r12, 0x38
cmp r12, 1
jbe 0x140054c89
mov r13, rdi
cmp rdi, r15
jb 0x14005436a
mov rax, rdi
xor edx, edx
div r15
mov r13, rdx
mov rax, qword [r14]
mov rax, qword [rax + r13*8]
test rax, rax
je 0x1400543f1
mov rsi, qword [rax]
test rsi, rsi
je 0x1400543f1
lea rcx, [r15 - 1]
mov rax, qword [rsi + 8]
cmp rax, rdi
je 0x1400543a7
cmp r12d, 1
jbe 0x140054c79
cmp rax, r15
jb 0x1400543a2
xor edx, edx
div r15
mov rax, rdx
cmp rax, r13
jne 0x1400543f1
cmp qword [rsi + 0x18], rbp
je 0x1400543b7
mov rsi, qword [rsi]
test rsi, rsi
jne 0x140054382
jmp 0x1400543f1
mov qword [rsp + 0x40], r13
cmp byte [rsp + 0x48], 0
jne 0x1400543e7
mov r13, r14
mov r14, rcx
mov rcx, qword [rsi + 0x10]
mov rdx, rbx
mov r8, rbp
call fcn.140061c80
test eax, eax
mov rcx, r14
mov r14, r13
mov r13, qword [rsp + 0x40]
jne 0x1400543ad
mov r12, qword [rsp + 0x30]
jmp 0x14005449d
mov r12, qword [rsp + 0x30]
mov ecx, 0x28
int3
mov rdi, qword [rsi + 0x20]
test rdi, rdi
jne 0x1400547ef
mov qword [rsi + 0x20], r12
test rbx, rbx
je 0x140054cd9
mov r13, qword [0x14011b490]
movabs rbp, 0x7fffffffffffffef
mov rcx, rbx
call fcn.140078f80
cmp rax, rbp
ja 0x140054dad
mov rsi, rax
cmp rax, 0x16
ja 0x1400544ed
lea rcx, [rsp + 0x58]
mov byte [rcx + 0x17], sil
jmp 0x140054518
mov rdi, rsi
or rdi, 0xf
inc rdi
mov rcx, rdi
int3
lea rdi, [rcx + rsi]
cmp rcx, rbx
ja 0x14005452a
cmp rdi, rbx
ja 0x140054d05
test rsi, rsi
je 0x14005453a
mov rdx, rbx
mov r8, rsi
call fcn.140061d80
mov byte [rdi], 0
movzx r10d, byte [rsp + 0x6f]
mov ecx, r10d
and ecx, 0x7f
test r10b, r10b
mov rbp, qword [rsp + 0x58]
lea rax, [rsp + 0x58]
mov r9, rax
cmovs r9, rbp
cmovs rcx, qword [rsp + 0x60]
cmp rcx, 0x20
ja 0x140054827
cmp rcx, 0x10
jbe 0x1400546ba
movabs rdx, 0xb492b66fbe98f273
imul rdx, qword [r9]
test r10b, r10b
cmovs rax, rbp
mov rbp, qword [rax + 8]
movabs rax, 0x9ae16a3b2f90404f
imul rax, qword [r9 + rcx - 8]
movabs rbx, 0xc3a5c85c97cb3127
imul rbx, qword [r9 + rcx - 0x10]
movabs rdi, 0xc949d7c7509e6557
xor rdi, rbp
rol rdi, 0x2c
add rcx, rdx
add rcx, rdi
sub rdx, rbp
rol rdx, 0x15
sub rcx, rax
rol rax, 0x22
add rax, rdx
add rax, rbx
xor rax, rcx
movabs rdx, 0x9ddfea08eb382d69
imul rax, rdx
xor rcx, rax
shr rax, 0x2f
xor rax, rcx
imul rax, rdx
mov rsi, rax
shr rsi, 0x2f
xor rsi, rax
imul rsi, rdx
mov rbx, qword [r13 + 0x30]
test rbx, rbx
movabs rdx, 0x3333333333333333
movabs rcx, 0x5555555555555555
jne 0x140054729
xor edi, edi
mov rsi, qword [rsp + 0x38]
test r10b, r10b
jns 0x14005463f
mov rcx, qword [rsp + 0x58]
call fcn.14005f174
test rdi, rdi
jne 0x140054db2
mov rcx, rsi
call fcn.14002db1a
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140060520
mov rax, r12
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rcx, 9
jae 0x140054901
cmp rcx, 4
jae 0x140054bae
movabs rsi, 0x9ae16a3b2f90404f
test rcx, rcx
je 0x140054608
movzx eax, byte [r9]
mov rdx, rcx
shr rdx, 1
movzx edx, byte [r9 + rdx]
movzx ebp, byte [rcx + r9 - 1]
shl rdx, 8
or rdx, rax
lea rax, [rcx + rbp*4]
imul rdx, rsi
movabs rcx, 0xc949d7c7509e6557
imul rcx, rax
xor rcx, rdx
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
imul rsi, rax
jmp 0x140054608
mov rax, rbx
shr rax, 1
and rax, rcx
mov rcx, rbx
sub rcx, rax
mov rax, rcx
and rax, rdx
shr rcx, 2
and rcx, rdx
add rcx, rax
mov rbp, rcx
shr rbp, 4
add rbp, rcx
movabs rax, 0xf0f0f0f0f0f0f0f
and rbp, rax
movabs rax, 0x101010101010101
imul rbp, rax
shr rbp, 0x38
cmp rbp, 1
jbe 0x140054c6d
mov r15, rsi
cmp rsi, rbx
jb 0x14005478e
mov rax, rsi
xor edx, edx
div rbx
mov r15, rdx
mov rax, qword [r13 + 0x28]
mov rax, qword [rax + r15*8]
test rax, rax
je 0x140054629
mov rdi, qword [rax]
test rdi, rdi
je 0x140054629
lea r14, [rbx - 1]
add r13, 0x4c
mov rax, qword [rdi + 8]
cmp rsi, rax
je 0x140054dc4
cmp ebp, 1
jbe 0x140054c81
cmp rax, rbx
jb 0x1400547d6
xor edx, edx
div rbx
mov rax, rdx
cmp rax, r15
jne 0x1400547e3
mov rdi, qword [rdi]
test rdi, rdi
jne 0x1400547b3
xor edi, edi
mov r10b, byte [rsp + 0x6f]
jmp 0x14005462b
cmp rdi, r12
mov rsi, qword [rsp + 0x38]
je 0x140054648
mov rcx, rsi
call fcn.14002db1a
test r12, r12
je 0x14005481f
mov rax, qword [r12]
mov rax, qword [rax]
mov rcx, r12
mov edx, 1
call qword [0x140125008]
mov r12, rdi
jmp 0x140054650
cmp rcx, 0x40
ja 0x140054945
test r10b, r10b
cmovs rax, rbp
mov r11, qword [r9 + rcx - 0x10]
lea rbx, [r11 + rcx]
movabs r8, 0xc3a5c85c97cb3127
imul rbx, r8
add rbx, qword [r9]
mov rbp, qword [rax + 0x18]
lea r14, [rbx + rbp]
rol r14, 0xc
mov rsi, rbx
rol rsi, 0x1b
mov rdx, qword [rax + 0x10]
add rbx, qword [rax + 8]
mov rax, rbx
rol rax, 0x39
add rbx, rdx
mov rdi, rbx
rol rdi, 0x21
add rdx, qword [r9 + rcx - 0x20]
add rbx, rbp
add rbp, qword [r9 + rcx - 8]
add rax, rsi
lea r15, [rdx + rbp]
rol r15, 0xc
add rax, r14
mov rsi, rdx
rol rsi, 0x1b
add rdi, rax
add rdx, qword [r9 + rcx - 0x18]
mov rax, rdx
rol rax, 0x39
add rdx, r11
add rbp, rdx
rol rdx, 0x21
add rsi, rbx
add rsi, rax
add rsi, r15
add rsi, rdx
movabs rax, 0x9ae16a3b2f90404f
imul rsi, rax
add rbp, rdi
imul rbp, r8
add rbp, rsi
mov rcx, rbp
shr rcx, 0x2f
xor rcx, rbp
imul rcx, r8
add rcx, rdi
mov rsi, rcx
shr rsi, 0x2f
xor rsi, rcx
imul rsi, rax
jmp 0x140054608
mov rax, qword [r9 + rcx - 8]
lea rdx, [rax + rcx]
ror rdx, cl
mov rcx, qword [r9]
xor rcx, rdx
movabs rbp, 0x9ddfea08eb382d69
imul rcx, rbp
xor rdx, rcx
shr rcx, 0x2f
xor rcx, rdx
imul rcx, rbp
mov rsi, rcx
shr rsi, 0x2f
xor rsi, rcx
imul rsi, rbp
xor rsi, rax
jmp 0x140054608
mov qword [rsp + 0x50], r13
movabs r13, 0xb492b66fbe98f273
movabs rax, 0x9ddfea08eb382d69
mov rsi, qword [r9 + rcx - 0x28]
mov r8, qword [r9 + rcx - 0x10]
mov r14, qword [r9 + rcx - 0x38]
mov r15, qword [r9 + rcx - 0x30]
lea rdi, [r14 + r8]
mov rbx, qword [r9 + rcx - 0x18]
lea rdx, [r15 + rcx]
xor rdx, rbx
imul rdx, rax
mov rbp, rbx
xor rbp, rdx
shr rdx, 0x2f
xor rdx, rbp
imul rdx, rax
mov r11, rdx
shr r11, 0x2f
xor r11, rdx
imul r11, rax
mov rbp, qword [r9 + rcx - 0x40]
add rbp, rcx
lea rax, [rsi + rbp]
add rax, r11
rol rax, 0x2b
add r15, r14
add r15, rbp
mov rdx, r15
rol rdx, 0x14
add rdx, rbp
add rdx, rax
add r15, rsi
mov rax, qword [r9 + rcx - 0x20]
add rax, rdi
mov r14, qword [r9 + rcx - 8]
add rax, r13
lea r12, [r14 + rsi]
add r12, rax
rol r12, 0x2b
add rbx, r8
add rbx, rax
mov rbp, rbx
rol rbp, 0x14
add rbp, rax
add rbp, r12
imul rsi, r13
add rsi, qword [r9]
add rbx, r14
dec rcx
and rcx, 0xffffffffffffffc0
xor r12d, r12d
mov qword [rsp + 0x40], r11
add rsi, r15
add rsi, rdi
mov r8, qword [r9 + r12 + 8]
mov r13, qword [r9 + r12 + 0x10]
add rsi, r8
rol rsi, 0x1b
add rdi, rdx
mov rax, qword [r9 + r12 + 0x30]
mov qword [rsp + 0x48], rax
add rdi, rax
rol rdi, 0x16
movabs r11, 0xb492b66fbe98f273
imul rsi, r11
mov rax, rdi
imul rax, r11
mov r11, rsi
xor r11, rbp
mov r14, qword [r9 + r12 + 0x28]
add r15, r14
mov rdi, r15
add rdi, rax
mov r15, qword [rsp + 0x40]
add r15, rbx
movabs rax, 0xb492b66fbe98f273
imul rdx, rax
mov rax, qword [r9 + r12 + 0x18]
add rdx, qword [r9 + r12]
add rbx, rax
add rbx, r11
add rbx, rdx
rol rbx, 0x2b
add r8, r13
add r8, rdx
mov rsi, r8
rol rsi, 0x14
add rdx, rsi
add rdx, rbx
mov rsi, r15
rol rsi, 0x1f
mov r15, r8
movabs rbx, 0xb492b66fbe98f273
imul rsi, rbx
add r15, rax
add r13, rdi
add rbp, rsi
add rbp, qword [r9 + r12 + 0x20]
mov rax, qword [r9 + r12 + 0x38]
add r13, rax
add r13, rbp
add r14, qword [rsp + 0x48]
add r14, rbp
mov rbx, r14
rol rbx, 0x14
add rbp, rbx
rol r13, 0x2b
add rbp, r13
mov rbx, r14
add rbx, rax
add r12, 0x40
cmp rcx, r12
jne 0x140054a10
xor rdx, rbp
movabs r8, 0x9ddfea08eb382d69
imul rdx, r8
mov rcx, rdx
shr rcx, 0x2f
xor rcx, rbp
xor rcx, rdx
imul rcx, r8
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
imul rax, r8
add rax, rsi
xor r15, rbx
imul r15, r8
mov rcx, r15
shr rcx, 0x2f
xor rcx, rbx
xor rcx, r15
imul rcx, r8
mov rdx, rcx
shr rdx, 0x2f
xor rdx, rcx
imul rdx, r8
mov rcx, rdi
shr rcx, 0x2f
xor rcx, rdi
movabs rbp, 0xb492b66fbe98f273
imul rcx, rbp
add rcx, r11
add rcx, rdx
xor rcx, rax
imul rcx, r8
xor rax, rcx
shr rcx, 0x2f
xor rcx, rax
imul rcx, r8
mov rsi, rcx
shr rsi, 0x2f
xor rsi, rcx
imul rsi, r8
mov r12, qword [rsp + 0x30]
mov r13, qword [rsp + 0x50]
jmp 0x140054608
mov eax, dword [r9]
mov edx, dword [r9 + rcx - 4]
shl eax, 3
add rax, rcx
xor rax, rdx
movabs rcx, 0x9ddfea08eb382d69
imul rax, rcx
xor rdx, rax
shr rax, 0x2f
xor rax, rdx
imul rax, rcx
mov rsi, rax
shr rsi, 0x2f
xor rsi, rax
imul rsi, rcx
jmp 0x140054608
xor ebp, ebp
xor edi, edi
jmp 0x1400542da
lea r15, [rbx - 1]
and r15, rsi
jmp 0x14005478e
and rax, rcx
jmp 0x1400543a2
and rax, r14
jmp 0x1400547d6
lea r13, [r15 - 1]
and r13, rdi
jmp 0x14005436a
movabs r13, 0xaaaaaaaaaaaaaaaa
jmp 0x1400543f6
mov ecx, 0xc0
int3
lea rax, str.basic_string_const_char__detected_nullptr
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_string
lea r9, str.__s___nullptr
mov r8d, 0x353
call fcn.1400ab5d5
lea rax, str.char_traits::copy_overlapped_range
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__stringchar_traits.h
lea r9, str.__s2_____s1____s2_____s1__n
mov r8d, 0xec
call fcn.1400ab5d5
lea rcx, [0x14011b480]
call fcn.140049ae0
test al, al
je 0x140054dea
mov qword [0x14011b488], 0
lea rsi, [0x14011b488]
lea rcx, [0x14011b480]
mov rdx, rsi
xor r8d, r8d
mov r9, rcx
call fcn.140049b80
jmp 0x140054253
lea rcx, [0x14011b480]
call fcn.140049ae0
test al, al
je 0x140054df6
mov qword [0x14011b488], 0
lea rsi, [0x14011b488]
lea rcx, [0x14011b480]
mov rdx, rsi
xor r8d, r8d
mov r9, rcx
call fcn.140049b80
jmp 0x140054271
int3
mov rcx, r12
mov edx, 0x20
call fcn.14004be90
jmp 0x140054648
lea rdx, [rdi + 0x10]
lea r8, [rsp + 0x58]
mov rcx, r13
call fcn.14003cdd0
test al, al
je 0x1400547db
jmp 0x1400547e5
mov rsi, qword [0x14011b480]
jmp 0x140054253
mov rsi, qword [0x14011b480]
jmp 0x140054271