Function at 0x14029ac00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov r13, r9
mov rsi, r8
mov r14, rdx
mov qword [rsp + 0x40], rcx
mov rax, qword [0x140521398]
xor rax, rsp
mov qword [rsp + 0xd0], rax
movzx ebx, byte [0x1405319a8]
mov ecx, dword [0x140410a3c]
mov eax, dword [0x140504b80]
xor eax, ebx
mov edx, dword [0x140504f50]
mov r8d, edx
xor r8d, 0x40dcfacb
mov r9d, edx
and r9d, 0x40dcfacb
lea r8d, [r8 + r9*2]
sub eax, r8d
mov r8d, edx
xor r8d, 0x40dc7db3
and edx, 0x40dc7db3
lea edx, [r8 + rdx*2]
add edx, eax
movsxd rax, edx
add rax, qword [0x140504bb0]
lea rdx, [rsp + 0xa0]
mov r8d, 0x60f1abbd
call qword [case.0x1401138cb.0]
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x90], rax
mov eax, dword [0x140504b48]
add eax, ebx
add eax, 0xffff82e8
cdqe
add rax, qword [0x140504c28]
lea rcx, [rsp + 0xa0]
mov edx, 0x880f78ec
call qword [case.0x1401138cb.0]
mov r9, qword [rsp + 0xa0]
movabs r12, 0xaf90f53f8ddfe781
mov eax, dword [0x1405331ac]
cmp eax, 0x34
jge 0x14029ad09
mov rdi, qword [0x140504f58]
add rdi, r12
mov ebp, dword [0x140410a34]
xor eax, eax
test al, al
je 0x14029ad11
mov eax, dword [0x140410a34]
jmp 0x14029acf3
cmp qword [rsp + 0x40], 0
sete al
test r14, r14
sete dl
test r13, r13
sete cl
mov r8, qword [0x140504f58]
add r8, r12
xor r15d, r15d
cmp rsi, r8
je 0x14029b5e9
or al, byte [0x1405319a8]
or al, dl
mov edx, eax
and dl, cl
xor al, cl
mov ecx, edx
and cl, al
jne 0x14029b5e9
xor dl, al
test dl, 1
jne 0x14029b5e9
mov qword [rsp + 0x88], r9
mov eax, dword [0x140504b5c]
or eax, ebx
add eax, 0xffff82e8
cdqe
add rax, qword [0x140504c18]
mov edx, 0x239027b2
add edx, dword [0x140504f50]
mov rcx, rsi
call qword [case.0x1401138cb.0]
test al, 1
mov qword [rsp + 0x58], rsi
je 0x14029addb
mov r15d, 0x10
sub r15, rsi
mov rax, qword [rsp + 0x40]
lea rdx, [rax + rsi]
add rdx, 0x50
lea rcx, [rsp + 0xc0]
mov r8, r15
call fcn.1403e3a10
lea rcx, [rsp + r15]
add rcx, 0xc0
mov rdx, r14
mov r8, rsi
call fcn.1403e3a10
jmp 0x14029afcf
mov dword [rsp + 0x3c], ebp
mov eax, dword [0x140504b44]
or eax, ebx
mov ecx, dword [0x140504f50]
add eax, ecx
add eax, 0x40dc009b
cdqe
add rax, qword [0x140504b98]
lea r8, [rsp + 0xa0]
mov rcx, rsi
mov rdx, r14
mov r9d, 0x2b327c18
call qword [case.0x1401138cb.0]
mov rax, qword [rsp + 0xa0]
movabs rdx, 0x8ed69f142616ec66
lea ecx, [r12 + rdx]
add ecx, dword [0x140504f58]
movups xmm0, xmmword [rax]
sub ecx, edx
add cl, 4
mov rbp, rsi
shr rbp, cl
movaps xmmword [rsp + 0xc0], xmm0
mov rax, qword [rsp + 0x40]
add rax, 0x50
mov qword [rsp + 0x48], rax
nop word [rax + rax]
add r13, 0x10
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx + 0x20]
mov rsi, qword [rsp + 0x48]
mov rdx, rsi
lea r8, [rsp + 0xb0]
call qword [case.0x1401138cb.0]
movups xmm0, xmmword [r14]
movups xmmword [rsi], xmm0
mov eax, dword [0x140504b7c]
add eax, ebx
add eax, 0xffff82e8
cdqe
add rax, qword [0x140504c10]
mov rcx, r14
lea r12, [rsp + 0xa0]
mov rdx, r12
mov r8d, 0x16a0467e
call qword [case.0x1401138cb.0]
mov eax, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0xb0]
mov edx, ecx
xor edx, eax
or eax, ecx
and eax, edx
mov dword [r13 - 0x10], eax
mov r15, r13
mov r13d, dword [r14 + 4]
mov esi, dword [rsp + 0xb4]
mov eax, dword [0x140504b58]
or eax, ebx
add eax, 0xffff82e8
cdqe
add rax, qword [0x140504c08]
mov ecx, esi
mov rdx, r12
mov r8d, 0xbc7b6a11
call qword [case.0x1401138cb.0]
mov eax, dword [rsp + 0xa0]
not r13d
mov ecx, eax
xor ecx, r13d
and ecx, eax
and r13d, esi
or r13d, ecx
mov dword [r15 - 0xc], r13d
mov r13, r15
mov eax, dword [rsp + 0xb8]
xor eax, dword [r14 + 8]
mov dword [r15 - 8], eax
mov eax, dword [rsp + 0xbc]
xor eax, dword [r14 + 0xc]
mov dword [r15 - 4], eax
mov eax, dword [0x140504b78]
xor eax, ebx
sub eax, dword [0x140504f50]
add eax, 0xbf230535
cdqe
add rax, qword [0x140504b90]
mov rcx, r14
mov rdx, r12
mov r8d, 0x9d9577af
call qword [case.0x1401138cb.0]
mov r14, qword [rsp + 0xa0]
mov eax, dword [0x140504b84]
or eax, ebx
mov ecx, dword [0x140504f50]
add eax, ecx
add eax, 0x40dc009b
cdqe
add rax, qword [0x140504c20]
mov rcx, rbp
mov rdx, r12
mov r8d, 0x7ef88b03
call qword [case.0x1401138cb.0]
test al, 1
jne 0x14029afbc
mov rbp, qword [rsp + 0xa0]
jmp 0x14029ae60
mov rsi, qword [rsp + 0x58]
movabs r12, 0xaf90f53f8ddfe781
mov ebp, dword [rsp + 0x3c]
mov rax, rsi
and rax, 0xf
mov qword [rsp + 0x80], rax
movabs r8, 0xd152114076146e9c
mov r9, qword [rsp + 0x88]
je 0x14029b5d5
mov dword [rsp + 0x3c], ebp
mov qword [rsp + 0x68], r13
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x70], rax
mov eax, dword [0x140504b00]
lea ecx, [rax + 1]
mov dword [0x140504b00], ecx
xor edx, edx
mov qword [rsp + 0x48], rdx
mov edx, 0
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x64], ecx
test eax, ecx
jne 0x14029b245
add r9, qword [rsp + 0x90]
sub rdi, r8
sub rdi, r9
add rdi, r8
mov eax, dword [0x140504b4c]
add eax, ebx
add eax, 0xffff82e8
cdqe
add rax, qword [0x140504bd8]
mov ecx, 0x9096fe60
call qword [case.0x1401138cb.0]
mov eax, dword [0x140504f50]
mov ecx, dword [0x1405331a8]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x14029b070
mov ecx, eax
xor ecx, 0x40dc7db3
and eax, 0x40dc7db3
lea eax, [rcx + rax*2]
xor ebp, ebp
mov ecx, 0
mov qword [rsp + 0x48], rcx
mov ecx, 0
mov qword [rsp + 0x50], rcx
cmp eax, dword [rsp + 0x3c]
jge 0x14029b245
lea rax, [fcn.14029ac00]
lea esi, [rax + rax]
add esi, 0x4a0
mov r15d, esi
not r15d
lea r13, [rsp + 0xa0]
xor eax, eax
mov qword [rsp + 0x48], rax
xor eax, eax
mov qword [rsp + 0x50], rax
nop word cs:[rax + rax]
mov eax, dword [0x1405331a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14029b1a0
nop word cs:[rax + rax]
mov eax, dword [0x1405331ac]
cmp eax, 0x46
jge 0x14029b1a0
movsxd r12, ebp
add r12, rdi
nop word cs:[rax + rax]
test r15d, esi
jne 0x14029b14a
mov rcx, qword [r12]
mov rax, qword [r12 + 8]
cmp dword [0x140504f50], 0xbf23824d
je 0x14029b1b0
mov rax, qword [r12]
mov rax, qword [r12 + 8]
mov ecx, dword [0x1405331a8]
lea edx, [rcx - 1]
mov eax, dword [0x140504b6c]
mov r8d, eax
xor r8d, ebx
and eax, ebx
lea eax, [r8 + rax*2]
add eax, 0xffff82e8
cdqe
add rax, qword [0x140504bd0]
mov r8, r13
mov r9d, 0x719d2502
call qword [case.0x1401138cb.0]
test byte [rsp + 0xa0], 1
jne 0x14029b130
jmp 0x14029b135
mov eax, dword [0x1405331ac]
cmp eax, 0x3c
jge 0x14029b1a0
jmp 0x14029b110
mov edx, dword [0x1405331ac]
movabs r12, 0xaf90f53f8ddfe781
mov edx, dword [0x1405331ac]
cmp edx, 0x5a
jg 0x14029b1c0
xor qword [rsp + 0x48], rcx
xor qword [rsp + 0x50], rax
mov eax, dword [0x140504b60]
add eax, ebx
sub eax, dword [0x140504f50]
add eax, 0xbf230535
cdqe
add rax, qword [0x140504bf8]
mov ecx, ebp
mov rdx, r13
mov r8d, 0x8b11d84
call qword [case.0x1401138cb.0]
mov ecx, dword [rsp + 0xa0]
mov eax, ebx
xor eax, ebx
not eax
and eax, dword [0x140504b40]
xor eax, ebx
add eax, 0xffff82e8
cdqe
add rax, qword [0x140504bc8]
mov rdx, r13
mov r8d, 0x68367480
call qword [case.0x1401138cb.0]
mov ebp, dword [rsp + 0xa0]
cmp ebp, dword [rsp + 0x3c]
jl 0x14029b0f0
mov rcx, qword [rsp + 0x40]
lea rdx, [rcx + 0x50]
mov eax, dword [0x140504b8c]
xor eax, ebx
add eax, 0xffff82e8
cdqe
add rax, qword [0x140504be0]
mov dword [rsp + 0x20], 0x13059fd6
lea r8, [rsp + 0xb0]
mov r9, qword [rsp + 0x70]
call qword [case.0x1401138cb.0]
mov eax, dword [0x140504b64]
xor eax, ebx
add eax, 0xffff82e8
cdqe
add rax, qword [0x140504bc0]
lea rdx, [rsp + 0x98]
lea rdi, [rsp + 0xa0]
mov rsi, qword [rsp + 0x58]
mov rcx, rsi
mov r8, rdi
mov r9d, 0x868469f0
call qword [case.0x1401138cb.0]
mov rdx, qword [rsp + 0x98]
mov r8, qword [rsp + 0xa0]
mov eax, dword [0x140504b88]
xor eax, ebx
mov ecx, dword [0x140504f50]
sub eax, ecx
add eax, 0xbf230535
cdqe
add rax, qword [0x140504be8]
add ecx, 0x9589c3e3
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], rdi
mov rcx, rsi
mov r13, qword [rsp + 0x80]
mov r9, r13
call qword [case.0x1401138cb.0]
mov rbp, qword [rsp + 0xa0]
test al, 1
je 0x14029b320
xor edi, edi
jmp 0x14029b417
sub r13, rbp
xor edi, edi
mov esi, 0x671ab2fb
mov r15, qword [rsp + 0x68]
nop
movzx eax, byte [r14 + rdi]
mov ecx, eax
xor cl, al
not cl
and cl, byte [rsp + rdi + 0xb0]
xor cl, al
mov byte [r15 + rdi], cl
mov rdx, rdi
or rdx, 1
movzx eax, byte [r14 + rdx]
movzx r8d, byte [rsp + rdx + 0xb0]
mov ecx, eax
not cl
mov r9d, r8d
xor r9b, cl
not r9b
and r9b, al
and cl, r8b
or cl, r9b
add rdx, r15
mov eax, dword [0x140504b68]
mov r8d, eax
xor r8d, ebx
and eax, ebx
lea eax, [r8 + rax*2]
add eax, 0xffff82e8
cdqe
add rax, qword [0x140504c00]
mov r8d, dword [0x140504f50]
add r8d, esi
call qword [case.0x1401138cb.0]
mov rax, qword [0x140504f58]
add rax, r12
add rax, 2
mov rcx, rdi
xor rcx, rax
not rcx
and rcx, rax
mov rax, rdi
xor rax, 2
or rax, rcx
movzx ecx, byte [r14 + rax]
movzx edx, byte [rsp + rax + 0xb0]
mov r8d, ecx
not r8b
mov r9d, edx
xor r9b, r8b
not r9b
and r9b, cl
and r8b, dl
or r8b, r9b
mov byte [r15 + rax], r8b
mov rax, rdi
or rax, 3
movzx ecx, byte [rsp + rax + 0xb0]
xor cl, byte [r14 + rax]
mov byte [r15 + rax], cl
add rdi, 4
cmp rdi, r13
jne 0x14029b330
mov al, 1
test al, al
mov r9, qword [rsp + 0x78]
mov r10d, dword [rsp + 0x64]
je 0x14029b459
xor ecx, ecx
test r9d, r10d
setne cl
mov r15, qword [0x140410a50]
mov r13, qword [0x140410a48]
xor edx, edx
neg rcx
sbb rdx, rdx
mov eax, dword [0x1405331a8]
lea r8d, [rax - 1]
imul r8d, eax
test r8b, 1
je 0x14029b469
mov rax, qword [0x140410a50]
mov rax, qword [0x140410a48]
jmp 0x14029b427
mov eax, dword [0x140504b50]
mov r8d, eax
xor r8d, ebx
and eax, ebx
lea eax, [r8 + rax*2]
add eax, 0xffff82e8
cdqe
add rax, qword [0x140504bb8]
lea r8, [rsp + 0xa0]
mov qword [rsp + 0x20], r8
mov dword [rsp + 0x28], 0x9eba7352
mov r8, 0xffffffffffffffff
mov r9, 0xffffffffffffffff
call qword [case.0x1401138cb.0]
xor r12d, r12d
xor eax, eax
sub rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
mov edx, 0
sbb rdx, rcx
sub r13, qword [rsp + 0x48]
sbb r15, qword [rsp + 0x50]
and r15, rdx
and r13, rax
mov eax, dword [0x140504b70]
sub eax, ebx
add eax, 0xffff82e8
cdqe
add rax, qword [0x140504ba0]
lea r8, [rsp + 0xa0]
mov rcx, r13
mov rdx, r15
mov r9d, 0x3f9d7244
call qword [case.0x1401138cb.0]
movzx esi, byte [rsp + 0xa0]
test r12b, r12b
jne 0x14029b522
mov al, 1
test al, al
jne 0x14029b57c
mov r15d, 0x342595f1
nop dword [rax + rax]
mov eax, dword [0x140504b74]
add eax, ebx
add eax, 0xffff82e8
cdqe
add rax, qword [0x140504bf0]
mov ecx, 0x97f95ce5
call qword [case.0x1401138cb.0]
mov eax, dword [0x140504b54]
or eax, ebx
add eax, 0xffff82e8
cdqe
add rax, qword [0x140504ba8]
mov ecx, dword [0x140504f50]
add ecx, r15d
call qword [case.0x1401138cb.0]
test al, 1
je 0x14029b530
jmp 0x14029b51c
or sil, byte [0x1405319a8]
xor eax, eax
test al, al
mov r9, qword [rsp + 0x68]
je 0x14029b610
jmp 0x14029b633
add r9, rdi
lea rax, [rsp + rdi]
add rax, 0xb0
add r14, rdi
dec rbp
xor ecx, ecx
nop dword [rax]
movzx edx, byte [r14 + rcx]
mov r8d, edx
xor r8b, dl
not r8b
and r8b, byte [rax + rcx]
xor r8b, dl
mov byte [r9 + rcx], r8b
lea rdx, [rcx + 1]
cmp rbp, rcx
mov rcx, rdx
jne 0x14029b5b0
movaps xmm0, xmmword [rsp + 0xc0]
mov rax, qword [rsp + 0x40]
movups xmmword [rax + 0x50], xmm0
mov r15, rsi
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.1403bbdf0
mov rax, r15
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, esi
and al, 1
mov byte [0x1405319a8], al
mov eax, dword [0x140504f50]
mov ecx, eax
xor ecx, 0x40dc7db3
and eax, 0x40dc7db3
add eax, eax
add eax, ecx
je 0x14029b63f
mov eax, esi
and al, 1
mov byte [0x1405319a8], al
jmp 0x14029b610
test rbp, rbp
mov rsi, qword [rsp + 0x58]
jne 0x14029b597
jmp 0x14029b5d5