Function at 0x140012930
Capabilities:
Encode data using xor

Disassembly:
jmp 0x140012930
mov qword [rsp + 0x18], rbp
push rsi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov r8, qword [rcx - 6]
mov r15, rdx
xor ebp, ebp
mov r12d, 1
mov r14, rcx
mov r13d, ebp
mov edx, dword [r8 + 0x10]
sub edx, r12d
js 0x140012984
movsxd rax, edx
lea rcx, [r8 + 0x18]
lea rcx, [rcx + rax*8]
nop dword [rax + rax]
cmp qword [rcx], rbp
jne 0x140012a0d
dec edx
sub rcx, 8
sub rax, r12
jns 0x140012970
mov esi, r12d
mov rcx, qword [r15 - 6]
mov qword [rsp + 0x58], rdi
mov edx, dword [rcx + 0x10]
sub edx, r12d
js 0x1400129b3
movsxd rax, edx
lea rcx, [rcx + rax*8]
add rcx, 0x18
cmp qword [rcx], rbp
jne 0x140012a15
dec edx
sub rcx, 8
sub rax, r12
jns 0x1400129a3
mov edi, r12d
cmp dword [r8 + 0x14], 0xffffffff
jne 0x1400129df
mov rcx, r14
call fcn.14000575e
mov r14, rax
test rax, rax
je 0x140012a06
mov rcx, qword [rax - 6]
mov edx, esi
add rcx, 0x18
call fcn.1400061ea
mov r13d, r12d
mov rax, qword [r15 - 6]
cmp dword [rax + 0x14], 0xffffffff
jne 0x140012a2d
mov rcx, r15
call fcn.14000575e
mov r15, rax
test rax, rax
jne 0x140012a1a
test r13d, r13d
je 0x140012a06
mov rcx, r14
call fcn.140001ae6
xor eax, eax
jmp 0x140012c2d
lea esi, [rdx + 1]
jmp 0x140012987
lea edi, [rdx + 1]
jmp 0x1400129b6
mov rcx, qword [rax - 6]
mov edx, edi
add rcx, 0x18
call fcn.1400061ea
or r13d, 2
mov qword [rsp + 0x50], rbx
cmp esi, edi
jae 0x140012aad
mov rcx, r15
call fcn.14000575e
mov rbx, rax
test rax, rax
je 0x140012c09
mov rcx, qword [rax - 6]
mov dword [rcx + 0x14], r12d
test r12b, r13b
je 0x140012a75
lea r8d, [rdi - 1]
cmp r8d, esi
jb 0x140012a75
mov rax, qword [rbx - 6]
not qword [rax + r8*8 + 0x18]
lea rdx, [rax + r8*8]
dec r8d
cmp r8d, esi
jae 0x140012a60
test esi, esi
je 0x140012b1d
mov r8d, 0x18
mov r9d, esi
nop word [rax + rax]
mov rax, qword [r14 - 6]
lea r8, [r8 + 8]
mov rdx, qword [rbx - 6]
mov rcx, qword [rax + r8 - 8]
xor qword [rdx + r8 - 8], rcx
sub r9, r12
jne 0x140012a90
jmp 0x140012b1d
mov rcx, r14
call fcn.14000575e
mov rbx, rax
test rax, rax
je 0x140012c09
mov rax, qword [rax - 6]
mov dword [rax + 0x14], r12d
test r13b, 2
je 0x140012af5
lea r8d, [rsi - 1]
cmp r8d, edi
jb 0x140012af5
nop dword [rax + rax]
mov rax, qword [rbx - 6]
not qword [rax + r8*8 + 0x18]
lea rdx, [rax + r8*8]
dec r8d
cmp r8d, edi
jae 0x140012ae0
test edi, edi
je 0x140012b1d
mov r8d, 0x18
mov r9d, edi
mov rax, qword [r15 - 6]
lea r8, [r8 + 8]
mov rdx, qword [rbx - 6]
mov rcx, qword [r8 + rax - 8]
xor qword [rdx + r8 - 8], rcx
sub r9, r12
jne 0x140012b02
mov r9, qword [rbx - 6]
mov r8d, dword [r9 + 0x10]
sub r8d, r12d
movsxd rdx, r8d
js 0x140012b48
lea rcx, [rdx + 3]
mov rax, rdx
lea rcx, [r9 + rcx*8]
cmp qword [rcx], rbp
jne 0x140012b6f
dec edx
sub rcx, 8
sub rax, r12
jns 0x140012b38
mov edx, r12d
lea ecx, [rdx - 1]
movsxd rax, ecx
lea rdi, [r9 + 0x18]
test ecx, ecx
js 0x140012b77
nop dword [rax]
cmp qword [rdi + rax*8], rbp
jne 0x140012b73
dec ecx
sub rax, r12
jns 0x140012b60
jmp 0x140012b77
inc edx
jmp 0x140012b4b
test ecx, ecx
jne 0x140012b88
test edx, edx
je 0x140012c05
cmp qword [rdi], rbp
je 0x140012c05
lea eax, [r13 - 1]
cmp eax, r12d
ja 0x140012c09
test r8d, r8d
js 0x140012bb8
movsxd rax, r8d
lea rcx, [rax + 3]
lea rcx, [r9 + rcx*8]
cmp qword [rcx], rbp
jne 0x140012bb4
dec r8d
sub rcx, 8
sub rax, r12
jns 0x140012ba1
jmp 0x140012bb8
lea r12d, [r8 + 1]
mov edx, r12d
mov rcx, rdi
call fcn.140003134
mov rcx, qword [rdi]
lea edx, [r12 - 1]
inc rcx
mov rax, rbp
cmp rcx, 1
mov qword [rdi], rcx
lea rcx, [rdi + 8]
setb al
test rax, rax
je 0x140012bf8
test edx, edx
je 0x140012bf8
add qword [rcx], 1
jne 0x140012bf8
inc ebp
add rcx, 8
cmp ebp, edx
jb 0x140012be8
mov rax, qword [rbx - 6]
mov dword [rax + 0x14], 0xffffffff
jmp 0x140012c09
mov dword [r9 + 0x14], ebp
test r13b, 1
je 0x140012c17
mov rcx, r14
call fcn.140001ae6
test r13b, 2
je 0x140012c25
mov rcx, r15
call fcn.140001ae6
mov rax, rbx
mov rbx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rsi
ret