Function at 0x140249ab0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rsi, rcx
mov r15, qword [rcx + 0x20]
mov rbx, qword [r15 + 0x10]
mov qword [rsp + 0x20], 0
cmp qword [r15 + 0x18], 8
mov rdi, r15
jb 0x140249ade
mov rdi, qword [r15]
lea r8, [rsp + 0x20]
mov rcx, rdi
mov rdx, rbx
mov r9d, 0xad024a43
call fcn.14024b170
mov rcx, qword [rsi + 0x28]
cmp rax, rbx
jae 0x140249b02
cmp rcx, rax
je 0x140249b7f
cmp rbx, 2
jb 0x140249b57
cmp rcx, rbx
jne 0x140249b57
movzx edx, word [rdi + rcx*2 - 2]
cmp edx, 0x5c
je 0x140249b1c
cmp edx, 0x2f
jne 0x140249b57
lea rdx, [rcx - 1]
mov r8, rdx
cmp rdx, rax
jbe 0x140249b4e
lea r8, [rcx - 2]
nop dword [rax]
movzx r9d, word [rdi + r8*2]
cmp r9d, 0x2f
je 0x140249b41
cmp r9d, 0x5c
jne 0x140249b4b
cmp r8, rax
jbe 0x140249b57
dec r8
jmp 0x140249b30
inc r8
cmp r8, rax
jne 0x140249c11
mov edx, dword [0x14055cccc]
cmp edx, 0x1a
mov rdx, qword [rsp + 0x20]
mov r8d, dword [0x14055ccc8]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
jne 0x140249b60
cmp rcx, rdx
ja 0x140249ba8
mov eax, dword [0x14055cccc]
cmp eax, 0x18
jle 0x140249cd7
jmp 0x140249d00
mov rcx, r8
cmp r8, rdx
jbe 0x140249b7f
mov r8, rcx
not r8
lea r8, [r8 + rcx*2]
cmp r8, rax
je 0x140249bf0
movzx r9d, word [rdi + r8*2]
cmp r9d, 0x2f
je 0x140249ba0
cmp r9d, 0x5c
je 0x140249ba0
mov r8, rcx
nop dword [rax + rax]
cmp r8, rdx
jbe 0x140249c34
mov rax, r8
movzx r9d, word [rdi + r8*2 - 2]
cmp r9d, 0x5c
je 0x140249c37
lea r8, [rax - 1]
cmp r9d, 0x2f
jne 0x140249bd0
jmp 0x140249c37
mov qword [rsi + 0x28], rax
mov qword [rsi + 0x10], 1
cmp qword [rsi + 0x18], 8
jb 0x140249c06
mov rsi, qword [rsi]
mov dword [rsi], 0x2f
jmp 0x140249e31
mov qword [rsi + 0x28], rdx
cmp qword [rsi + 0x18], 8
mov rax, rsi
jb 0x140249c22
mov rax, qword [rsi]
mov qword [rsi + 0x10], 0
mov word [rax], 0
jmp 0x140249e31
mov rax, rdx
mov qword [rsi + 0x28], rax
cmp qword [r15 + 0x18], 8
jb 0x140249c45
mov r15, qword [r15]
lea r14, [r15 + rcx*2]
lea rdi, [r15 + rax*2]
sub r14, rdi
mov rbx, r14
sar rbx, 1
mov r12, qword [rsi + 0x18]
cmp r12, rbx
jae 0x140249c94
jmp 0x140249d0f
mov qword [rsi + 0x10], rbx
mov rcx, r15
mov rdx, rdi
mov r8, r14
call fcn.14040cc90
mov word [r15 + rbx*2], 0
mov eax, dword [0x14055cccc]
cmp eax, 0x4f
jl 0x140249cad
mov eax, dword [0x14055cccc]
cmp eax, 0xb
jle 0x140249cad
mov r15, rsi
cmp r12, 8
jb 0x140249c70
mov r15, qword [rsi]
jmp 0x140249c70
mov r15, rsi
cmp r12, 8
jb 0x140249cb9
mov r15, qword [rsi]
mov qword [rsi + 0x10], rbx
mov rcx, r15
mov rdx, rdi
mov r8, r14
call fcn.14040cc90
mov word [r15 + rbx*2], 0
jmp 0x140249e31
mov qword [rsi + 0x28], 0
cmp qword [r15 + 0x18], 8
mov rdi, r15
jb 0x140249cec
mov rdi, qword [r15]
mov rbx, qword [rsp + 0x20]
mov r12, qword [rsi + 0x18]
mov eax, dword [0x14055cccc]
cmp eax, 0x5c
jle 0x140249d0a
mov qword [rsi + 0x28], 0
jmp 0x140249cd7
cmp r12, rbx
jae 0x140249d2a
mov rcx, rsi
mov rdx, rbx
mov r9, rdi
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
jmp fcn.14008d210
lea rax, [fcn.140249ab0]
add eax, eax
add eax, 0x3a20
mov ecx, eax
not ecx
test ecx, eax
jne 0x140249d70
lea r8, [rbx + rbx]
mov r14, rsi
cmp r12, 8
jb 0x140249d50
mov r14, qword [rsi]
mov qword [rsi + 0x10], rbx
mov rcx, r14
mov rdx, rdi
call fcn.14040cc90
mov word [r14 + rbx*2], 0
mov al, 1
test al, al
jne 0x140249e31
lea rcx, [rbx + rbx]
mov rdx, rbx
shl rdx, cl
mov rax, rcx
sub rax, rdx
sub rax, rcx
imul rax, rcx
sub rax, rcx
imul rax, rcx
mov rdx, rax
lea r8, [rax - 1]
movabs r9, 0x3393806a23a2bdf
xor r9, rax
movabs r10, 0x3393806a23a2bdc
and r10, rax
shl rax, cl
neg rdx
mov rcx, r8
and rcx, rax
mov r11, rdx
xor rdx, rax
not rax
and r11, rax
or r11, rcx
and rax, r8
or rax, rdx
not rax
lea rcx, [r11 + rax*2]
lea rax, [r9 + r10*2]
sub rax, rcx
movabs r8, 0xfcc6c7f95dc5d421
add r8, rax
imul r8, rcx
sub r8, rcx
imul r8, rcx
mov rax, r8
shl rax, cl
mov ecx, r8d
sub ecx, eax
imul ecx, eax
shl r8, cl
shl r8, cl
mov r14, rsi
cmp r12, 8
jb 0x140249e16
mov r14, qword [rsi]
mov qword [rsi + 0x10], rbx
mov rcx, r14
mov rdx, rdi
call fcn.14040cc90
mov word [r14 + rbx*2], 0
jmp 0x140249d40
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret