Function at 0x14000bd70
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x158]
sub rsp, 0x230
mov qword [rbp - 0x30], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x140046180]
xor rax, rsp
mov qword [rbp + 0x120], rax
mov rbx, rcx
xor r15d, r15d
mov r13d, r15d
cmp qword [rcx + 0x48], r15
jne 0x14000bdcb
mov dword [rcx], 6
xor eax, eax
jmp 0x14000c45f
mov r12d, 0xf
mov qword [rbp + 0x90], r12
mov qword [rbp + 0x88], r15
mov byte [rbp + 0x78], r15b
lea rcx, [rbp + 0xe0]
lea rdx, [0x14003a048]
lea r8d, [r12 + 0x2e]
call fcn.1400230b0
lea edx, [r12 + 0x2c]
mov al, byte [rbp + rdx + 0xdf]
xor byte [rbp + rdx + 0xe0], al
dec rdx
test rdx, rdx
jg 0x14000be00
xor byte [rbp + 0xe0], 0xad
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rbp + 0xe0]
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rbp + 0xe0]
lea rcx, [rbp + 0x78]
call fcn.140002348
lea rdx, [rbx + 0x38]
or rdi, 0xffffffffffffffff
mov r9, rdi
xor r8d, r8d
lea rcx, [rbp + 0x78]
call fcn.14000a82c
lea rcx, [rbp + 0xb8]
lea rdx, [0x14003a088]
lea r8d, [rdi + 0x24]
call fcn.1400230b0
lea edx, [rdi + 0x22]
mov al, byte [rbp + rdx + 0xb7]
xor byte [rbp + rdx + 0xb8], al
dec rdx
test rdx, rdx
jg 0x14000be74
xor byte [rbp + 0xb8], 0xde
lea rdx, [rbp + 0xb8]
lea rcx, [rbp + 0x78]
call fcn.14000a6ec
mov qword [rbp + 0x68], r12
mov qword [rbp + 0x60], r15
mov byte [rbp + 0x50], r15b
xor r8d, r8d
lea rdx, [0x14003b640]
lea rcx, [rbp + 0x50]
call fcn.140002348
nop
lea rcx, [rsp + 0x50]
call fcn.14000259c
nop
lea rcx, [rbp - 0x50]
call fcn.14000259c
nop
lea rcx, [rsp + 0x70]
call fcn.14000259c
nop
lea rcx, [rbp - 0x70]
call fcn.14000259c
nop
mov qword [rbp + 0xc0], r15
mov ecx, 0x400
mov qword [rbp + 0xc8], rcx
call fcn.140014420
mov qword [rbp + 0xb8], rax
lea rcx, [rsp + 0x50]
call fcn.140010cf8
mov esi, 3
mov qword [rbp + 0xc0], r15
mov qword [rbp + 0x18], r12
mov qword [rbp + 0x10], r15
mov byte [rbp], r15b
mov r9, rdi
xor r8d, r8d
lea rdx, [rbp + 0x78]
lea rcx, [rbp]
call fcn.14000278c
nop
cmp qword [rbp + 0x60], r15
jbe 0x14000bfc3
mov rax, qword [str._vj_rh_S8_3]
mov qword [rbp + 0xa8], rax
mov eax, dword [0x14003a0b8]
mov dword [rbp + 0xb0], eax
mov ecx, 0xa
mov al, byte [rbp + rcx + 0xa7]
xor byte [rbp + rcx + 0xa8], al
dec rcx
test rcx, rcx
jg 0x14000bf65
xor byte [rbp + 0xa8], 0x5d
lea r8, [rbp + 0x50]
lea rdx, [rbp + 0xa8]
lea rcx, [rbp + 0xe0]
call fcn.14000b0d0
nop
mov r9, rdi
xor r8d, r8d
mov rdx, rax
lea rcx, [rbp]
call fcn.14000a82c
nop
cmp qword [rbp + 0xf8], 0x10
jb 0x14000bfc3
mov rcx, qword [rbp + 0xe0]
call fcn.1400233e4
mov dword [rbp + 0xa0], r15d
mov qword [rbp + 0xf8], r12
mov qword [rbp + 0xf0], r15
mov byte [rbp + 0xe0], r15b
mov r8, rsi
lea rdx, [0x140039840]
lea rcx, [rbp + 0xe0]
call fcn.140002348
nop
lea rdx, [rbp]
cmp qword [rbp + 0x18], 0x10
cmovae rdx, qword [rbp]
mov qword [rbp - 0x10], r12
mov qword [rbp - 0x18], r15
mov byte [rbp - 0x28], r15b
xor eax, eax
mov rcx, rdi
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rbp - 0x28]
call fcn.140002348
nop
lea rax, [rbp + 0xb8]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp - 0x28]
lea rcx, [rbx + 8]
call fcn.140009d8c
mov edi, eax
cmp qword [rbp - 0x10], 0x10
jb 0x14000c087
mov rcx, qword [rbp - 0x28]
call fcn.1400233e4
mov qword [rbp - 0x10], r12
mov qword [rbp - 0x18], r15
mov byte [rbp - 0x28], r15b
cmp qword [rbp + 0xf8], 0x10
jb 0x14000c0a9
mov rcx, qword [rbp + 0xe0]
call fcn.1400233e4
mov r12d, r15d
test edi, edi
je 0x14000c1f6
cmp edi, esi
je 0x14000c1c9
mov edx, 0x5a2bc0
mov ecx, 0xb9f5b9c
call fcn.140022154
mov ecx, 0xbb8
call rax
mov edi, 0xf
mov qword [rbp + 0xf8], rdi
mov qword [rbp + 0xf0], r15
mov byte [rbp + 0xe0], r15b
mov r8, rsi
lea rdx, [0x140039840]
lea rcx, [rbp + 0xe0]
call fcn.140002348
nop
lea rdx, [rbp]
cmp qword [rbp + 0x18], 0x10
cmovae rdx, qword [rbp]
mov qword [rbp - 0x10], rdi
mov qword [rbp - 0x18], r15
mov byte [rbp - 0x28], r15b
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rbp - 0x28]
call fcn.140002348
nop
lea rax, [rbp + 0xb8]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp - 0x28]
lea rcx, [rbx + 8]
call fcn.140009d8c
mov edi, eax
cmp qword [rbp - 0x10], 0x10
jb 0x14000c195
mov rcx, qword [rbp - 0x28]
call fcn.1400233e4
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x18], r15
mov byte [rbp - 0x28], r15b
cmp qword [rbp + 0xf8], 0x10
jb 0x14000c1bb
mov rcx, qword [rbp + 0xe0]
call fcn.1400233e4
inc r12d
cmp r12d, esi
jl 0x14000c0ac
jmp 0x14000c1cf
mov dword [rbx], 1
test edi, edi
je 0x14000c1f6
cmp edi, 2
je 0x14000c295
cmp edi, 4
je 0x14000c295
cmp edi, 1
je 0x14000c27d
cmp edi, esi
je 0x14000c27d
mov r12d, 0xf
mov qword [rbp + 0x40], r12
mov qword [rbp + 0x38], r15
mov byte [rbp + 0x28], r15b
mov r8, qword [rbp + 0xc0]
mov rdx, qword [rbp + 0xb8]
lea rcx, [rbp + 0x28]
call fcn.140002348
nop
lea r9, [rbp + 0x50]
lea r8, [rbp - 0x70]
lea rdx, [rsp + 0x70]
lea rcx, [rbp + 0x28]
call fcn.1400121d0
test eax, eax
je 0x14000c299
lea r13d, [r12 - 0xe]
mov dword [rbx], r15d
cmp qword [rbp + 0x40], 0x10
jb 0x14000c252
mov rcx, qword [rbp + 0x28]
call fcn.1400233e4
mov qword [rbp + 0x40], r12
mov qword [rbp + 0x38], r15
mov byte [rbp + 0x28], r15b
cmp qword [rbp + 0x18], 0x10
jb 0x14000c26e
mov rcx, qword [rbp]
call fcn.1400233e4
cmp qword [rbp + 0x60], r15
jbe 0x14000c2d3
or rdi, 0xffffffffffffffff
jmp 0x14000bf19
mov dword [rbx], 1
cmp qword [rbp + 0x18], 0x10
jb 0x14000c2cd
mov rcx, qword [rbp]
call fcn.1400233e4
jmp 0x14000c2cd
mov dword [rbx], esi
jmp 0x14000c283
mov dword [rbx], 4
cmp qword [rbp + 0x40], 0x10
jb 0x14000c2af
mov rcx, qword [rbp + 0x28]
call fcn.1400233e4
mov qword [rbp + 0x40], r12
mov qword [rbp + 0x38], r15
mov byte [rbp + 0x28], r15b
cmp qword [rbp + 0x18], 0x10
jb 0x14000c2d3
mov rcx, qword [rbp]
call fcn.1400233e4
jmp 0x14000c2d3
mov r12d, 0xf
mov eax, dword [str._J_Q]
mov dword [rbp + 0xa0], eax
mov al, byte [0x14003a0c0]
mov byte [rbp + 0xa4], al
mov al, byte [rbp + rsi + 0x9f]
xor byte [rbp + rsi + 0xa0], al
dec rsi
test rsi, rsi
jg 0x14000c2eb
mov rdx, qword [rbx + 0x30]
lea rcx, [rbp + 0xa0]
call fcn.140004570
nop
lea rdi, [rbx + 0x60]
lea rax, [rsp + 0x70]
cmp rdi, rax
je 0x14000c346
mov r8, qword [rdi + 8]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp + 0xa8]
mov rcx, rdi
call fcn.1400024e4
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.140007178
sub rbx, 0xffffffffffffff80
lea rax, [rbp - 0x70]
cmp rbx, rax
je 0x14000c379
mov r8, qword [rbx + 8]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp + 0xa8]
mov rcx, rbx
call fcn.1400024e4
lea rdx, [rbp - 0x70]
mov rcx, rbx
call fcn.140007178
nop
lea rcx, [rbp + 0xa0]
call fcn.1400045a8
nop
lea rcx, [rbp + 0xb8]
call fcn.1400054b8
nop
mov r8, qword [rbp - 0x68]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp + 0xa8]
lea rcx, [rbp - 0x70]
call fcn.1400024e4
nop
mov rcx, qword [rbp - 0x68]
call fcn.1400233e4
nop
mov r8, qword [rsp + 0x78]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp + 0xa8]
lea rcx, [rsp + 0x70]
call fcn.1400024e4
nop
mov rcx, qword [rsp + 0x78]
call fcn.1400233e4
nop
mov r8, qword [rbp - 0x48]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp + 0xa8]
lea rcx, [rbp - 0x50]
call fcn.1400024e4
nop
mov rcx, qword [rbp - 0x48]
call fcn.1400233e4
nop
mov r8, qword [rsp + 0x58]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp + 0xa8]
lea rcx, [rsp + 0x50]
call fcn.1400024e4
nop
mov rcx, qword [rsp + 0x58]
call fcn.1400233e4
nop
cmp qword [rbp + 0x68], 0x10
jb 0x14000c43d
mov rcx, qword [rbp + 0x50]
call fcn.1400233e4
mov qword [rbp + 0x68], r12
mov qword [rbp + 0x60], r15
mov byte [rbp + 0x50], r15b
cmp qword [rbp + 0x90], 0x10
jb 0x14000c45c
mov rcx, qword [rbp + 0x78]
call fcn.1400233e4
mov eax, r13d
mov rcx, qword [rbp + 0x120]
xor rcx, rsp
call fcn.140022ee0
lea r11, [rsp + 0x230]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret