Function at 0x1402f5720
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov byte [rsp + 0x30], r9b
mov esi, r8d
mov r8d, edx
mov rdi, rcx
mov rbx, qword [rsp + 0xb0]
mov rax, qword [0x140521398]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rax, qword [0x1405312d0]
mov r12, rax
shr r12, 0x20
or r12d, eax
mov ecx, dword [0x140534190]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0xccab9fd3
add ecx, dword [0x14050f770]
xor edx, edx
div ecx
test edx, edx
jne 0x1402f5790
test rdi, rdi
jne 0x1402f579d
nop word [rax + rax]
mov eax, dword [0x140534194]
cmp eax, 0xc
jge 0x1402f5790
jmp 0x1402f5785
test r8d, r8d
mov dword [rsp + 0x38], r8d
jle 0x1402f5842
mov r15d, r8d
nop
mov eax, dword [0x140534190]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1402f57d2
mov eax, dword [0x140534190]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1402f57df
mov eax, dword [0x140534194]
cmp eax, 0x41
jge 0x1402f57b0
jmp 0x1402f57c1
xor ebp, ebp
movabs r14, 0x826a62552624aaf4
xor r13d, r13d
nop
lea rcx, [rbp*4]
add rcx, rbp
shl rcx, 5
add rcx, qword [rdi + 0x370]
mov eax, dword [0x14050ec84]
sub eax, r12d
add eax, 0xa95e
cdqe
add rax, qword [0x14050ec90]
mov edx, 0x4f05917f
mov r8d, 0x4f05917f
call qword [case.0x1401138cb.0]
add r13d, eax
add rbp, qword [0x14050f778]
add rbp, r14
cmp rbp, r15
jne 0x1402f57f0
jmp 0x1402f5845
xor r13d, r13d
movsxd rax, dword [rsp + 0x38]
lea rcx, [rax + rax*4]
shl rcx, 5
add rcx, qword [rdi + 0x370]
mov eax, dword [0x14050ec8c]
or eax, r12d
add eax, 0xa95e
cdqe
add rax, qword [0x14050eca8]
movzx edx, byte [rsp + 0x30]
mov r8d, 0x8e29e1bc
mov r9d, 0x7486ee29
call qword [case.0x1401138cb.0]
mov r15d, eax
add r15d, r13d
lea r14, [rdi + 0xe8]
add r15d, dword [rdi + 0x388]
test byte [rdi + 0x334], 2
jne 0x1402f58ba
mov rcx, qword [rdi + 0x338]
mov edx, r15d
movzx eax, byte [0x1405316e1]
add al, byte [rcx + rdx]
jmp 0x1402f58f1
mov eax, r12d
xor eax, r12d
not eax
and eax, dword [0x14050ec80]
xor eax, r12d
add eax, 0xa95e
cdqe
add rax, qword [0x14050eca0]
mov rcx, r14
mov edx, r15d
mov r8d, 0x2aefc03d
mov r9d, 0x7ef2c55f
call qword [case.0x1401138cb.0]
mov ebp, dword [rsp + 0xb8]
mov ecx, dword [0x140534190]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x1402f592b
mov ecx, 0xccab9fd2
add ecx, dword [0x14050f770]
mov byte [rsp + 0x3c], al
lea rdx, [fcn.1402f5720]
add edx, edx
add edx, 0x31c0
test edx, ecx
je 0x1402f594a
lea rcx, [fcn.1402f5720]
add ecx, ecx
add ecx, 0x580
mov edx, ecx
not edx
nop
mov byte [rsp + 0x3c], al
test edx, ecx
jne 0x1402f5940
jmp 0x1402f5909
lea edx, [r15 + 1]
mov eax, dword [rdi + 0x334]
xor eax, 0xfffffffd
test al, 2
jne 0x1402f596a
mov rax, qword [rdi + 0x338]
mov ecx, edx
movzx eax, byte [rax + rcx]
jmp 0x1402f5996
mov eax, dword [0x14050ec80]
sub eax, r12d
add eax, 0xa95e
cdqe
add rax, qword [0x14050eca0]
mov rcx, r14
mov r8d, 0x2aefc03d
mov r9d, 0x7ef2c55f
call qword [case.0x1401138cb.0]
mov ecx, dword [0x140534190]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x1402f59d3
mov byte [rsp + 0x3d], al
mov ecx, dword [0x14050f770]
lea edx, [rcx - 0x3354602e]
lea r8, [fcn.1402f5720]
add r8d, r8d
add r8d, 0x13c0
xor r8d, edx
not r8d
test r8d, edx
je 0x1402f59e3
mov byte [rsp + 0x3d], al
mov dword [0x140534190], 1
jmp 0x1402f59a7
mov eax, r15d
xor eax, 2
mov edx, r15d
and edx, 2
lea edx, [rax + rdx*2]
mov eax, dword [rdi + 0x334]
lea r8d, [rcx - 0x3354602d]
xor r8d, eax
not r8d
and r8d, eax
add ecx, 0xccab9fd1
cmp r8d, ecx
jne 0x1402f5a1f
cmp qword [0x1405312d0], 0
je 0x1402f5a4d
jmp 0x1402f5a53
mov eax, dword [0x14050ec80]
xor eax, r12d
add eax, 0xa95e
cdqe
add rax, qword [0x14050eca0]
mov rcx, r14
mov r8d, 0x2aefc03d
mov r9d, 0x7ef2c55f
call qword [case.0x1401138cb.0]
jmp 0x1402f5a8e
mov al, 1
test al, al
jne 0x1402f5a81
mov eax, 0xccab9fd1
nop dword [rax + rax]
mov ecx, dword [0x140534190]
lea r8d, [rcx - 1]
imul r8d, ecx
and r8d, 1
mov ecx, dword [0x14050f770]
add ecx, eax
cmp r8d, ecx
jne 0x1402f5a60
jmp 0x1402f5a4d
mov rax, qword [rdi + 0x338]
mov ecx, edx
movzx eax, byte [rax + rcx]
mov byte [rsp + 0x3e], al
mov eax, r15d
xor eax, 3
mov ecx, r15d
and ecx, 3
lea edx, [rax + rcx*2]
mov eax, 0xccab9fd3
add eax, dword [0x14050f770]
mov ecx, dword [rdi + 0x334]
mov r8d, ecx
not r8d
xor ecx, eax
not eax
and eax, r8d
or eax, ecx
cmp eax, 0xffffffff
je 0x1402f5af4
mov eax, dword [0x14050ec80]
xor eax, r12d
add eax, 0xa95e
cdqe
add rax, qword [0x14050eca0]
mov rcx, r14
mov r8d, 0x2aefc03d
mov r9d, 0x7ef2c55f
call qword [case.0x1401138cb.0]
jmp 0x1402f5b01
mov rax, qword [rdi + 0x338]
mov ecx, edx
movzx eax, byte [rax + rcx]
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x3f], al
mov rax, qword [rdi]
mov rax, qword [rax + 0x20]
mov rcx, rdi
call qword [case.0x1401138cb.0]
test al, al
je 0x1402f5b80
mov eax, dword [rdi + 0xa0]
lea rcx, [rdi + 0x1e4]
mov dword [rdi + 0x234], eax
mov dword [rdi + 0x238], r15d
mov dword [rdi + 0x23c], eax
mov dword [rdi + 0x240], r15d
mov eax, dword [0x14050ec88]
or eax, r12d
add eax, 0xa95e
cdqe
add rax, qword [0x14050ec98]
mov dword [rsp + 0x28], 0x6ad9fc7f
mov dword [rsp + 0x20], 0x7653eab
lea rdx, [rsp + 0x3c]
mov r8d, 4
mov r9, rdx
call qword [case.0x1401138cb.0]
add esi, dword [rsp + 0x3c]
mov r15d, ebp
test ebp, ebp
jle 0x1402f5c68
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x1402f5bb5
mov ecx, dword [0x140534190]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x1402f5bd5
mov ecx, dword [0x140534190]
mov edx, dword [0x14050f770]
neg edx
add edx, ecx
add edx, 0x3354602e
imul edx, ecx
test dl, 1
jne 0x1402f5ba0
jmp 0x1402f5ba4
lea r13, [r15 - 1]
mov ebp, esi
xor r14d, r14d
mov r8d, 0xccab9fd1
nop word cs:[rax + rax]
lea rdx, [r14 + rbp]
mov eax, dword [rdi + 0x334]
and eax, 2
mov ecx, dword [0x14050f770]
add ecx, r8d
cmp eax, ecx
jne 0x1402f5c20
mov rax, qword [rdi + 0x338]
mov ecx, edx
movzx eax, byte [rax + rcx]
jmp 0x1402f5c5a
mov eax, dword [0x14050ec80]
sub eax, r12d
sub eax, dword [0x14050f770]
add eax, 0x3355098d
cdqe
add rax, qword [0x14050eca0]
mov rcx, qword [rsp + 0x30]
mov r8d, 0x2aefc03d
mov r9d, 0x7ef2c55f
call qword [case.0x1401138cb.0]
mov r8d, 0xccab9fd1
mov byte [rbx + r14], al
cmp r13, r14
je 0x1402f5c68
inc r14
jmp 0x1402f5bf0
mov rax, qword [rdi]
mov rax, qword [rax + 0x20]
mov rcx, rdi
call qword [case.0x1401138cb.0]
test al, al
je 0x1402f5d97
mov eax, dword [0x140534190]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0xccab9fd1
add eax, dword [0x14050f770]
cmp ecx, eax
jne 0x1402f5d0b
mov eax, dword [rdi + 0xa0]
lea rcx, [rdi + 0x1e4]
mov dword [rdi + 0x234], eax
mov dword [rdi + 0x238], esi
mov dword [rdi + 0x23c], eax
mov dword [rdi + 0x240], esi
mov eax, dword [0x14050ec88]
xor eax, r12d
mov edx, dword [0x14050f770]
add eax, edx
add eax, 0xccac492f
cdqe
add rax, qword [0x14050ec98]
mov dword [rsp + 0x28], 0x6ad9fc7f
mov dword [rsp + 0x20], 0x7653eab
mov rdx, rbx
mov r8, r15
mov r9, rbx
call qword [case.0x1401138cb.0]
mov al, 1
test al, al
jne 0x1402f5d97
lea r14, [rdi + 0x1e4]
lea rax, [fcn.1402f5720]
lea ebp, [rax + rax]
add ebp, 0x40a0
mov r13d, ebp
not r13d
nop dword [rax + rax]
mov eax, dword [rdi + 0xa0]
mov dword [rdi + 0x234], eax
mov dword [rdi + 0x238], esi
mov dword [rdi + 0x23c], eax
mov dword [rdi + 0x240], esi
mov eax, dword [0x14050ec88]
xor eax, r12d
sub eax, dword [0x14050f770]
add eax, 0x3355098d
cdqe
add rax, qword [0x14050ec98]
mov dword [rsp + 0x28], 0x6ad9fc7f
mov dword [rsp + 0x20], 0x7653eab
mov rcx, r14
mov rdx, rbx
mov r8, r15
mov r9, rbx
call qword [case.0x1401138cb.0]
test r13d, ebp
jne 0x1402f5d30
jmp 0x1402f5c9e
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1403bbdf0
nop
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret