Function at 0x29e85bcce70
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
lea rbp, [rsp - 0x2c0]
sub rsp, 0x3c0
mov rax, qword [0x29e85cc0760]
xor rax, rsp
mov qword [rbp + 0x280], rax
mov rax, qword [rbp + 0x310]
mov ebx, 8
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x48], rax
mov rax, qword [rbp + 0x328]
mov rdi, r8
mov qword [rbp - 0x78], r8
mov qword [rbp - 0x70], rdx
mov qword [rbp - 0x80], rcx
mov qword [rsp + 0x78], rax
mov esi, 0x40
mov dword [rsp + 0x20], ebx
call fcn.29e85b7a190
sub eax, esi
je 0x29e85bccf4f
sub eax, 0x260
je 0x29e85bccf2b
dec eax
je 0x29e85bccefa
test rdi, rdi
je 0x29e85bcd637
mov qword [rdi], 0xffffffffffffffff
jmp 0x29e85bcd637
lea rcx, [rbp - 0x30]
call fcn.29e85b8a720
lea rcx, [0x29e85bcd970]
mov r13d, 0x30
mov ebx, 0x10
lea rax, [0x29e85b8ade0]
mov qword [rsp + 0x68], rcx
lea esi, [r13 + 0x50]
mov dword [rsp + 0x20], ebx
jmp 0x29e85bccf71
lea rcx, [rbp - 0x30]
call fcn.29e85b95600
lea rcx, [0x29e85bcd890]
lea rax, [0x29e85b95660]
mov qword [rsp + 0x68], rcx
mov r13d, 0x20
jmp 0x29e85bccf71
lea rcx, [rbp - 0x30]
call fcn.29e85b950d0
lea rax, [0x29e85bcd800]
mov r13d, 0x14
mov qword [rsp + 0x68], rax
lea rax, [0x29e85b95120]
movzx r11d, byte [rbp + 0x338]
mov qword [rsp + 0x3b8], r12
mov qword [rsp + 0x3b0], r14
mov r14d, 0xd
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x3a8], r15
mov dword [rsp + 0x30], r14d
test r11b, r11b
je 0x29e85bccfbb
mov r14d, dword [rbp + 0x330]
add r14d, 0x33
mov dword [rsp + 0x30], r14d
mov r8d, dword [rbp + 0x318]
test r11b, r11b
mov eax, 2
mov r10d, 6
cmovne r10d, eax
mov eax, dword [rbp + 0x320]
xor edx, edx
sub eax, r13d
sub r8d, r13d
xor r15d, r15d
dec eax
add r8d, r14d
mov ecx, r15d
add eax, r14d
mov dword [rsp + 0x40], r10d
mov dword [rsp + 0x2c], r15d
add eax, ebx
mov edi, r15d
add eax, esi
div esi
xor edx, edx
mov r9d, eax
mov eax, r8d
div esi
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x64], edx
xor edx, edx
lea eax, [r8 + rbx]
div esi
test r11b, r11b
setne cl
mov dword [rsp + 0x5c], eax
add ecx, r10d
cmp r9d, ecx
jbe 0x29e85bcd03c
mov edi, r9d
sub edi, r10d
mov dword [rsp + 0x2c], edi
imul edi, esi
lea r12d, [r8*8]
test r11b, r11b
jne 0x29e85bcd10b
lea rcx, [rbp + 0x100]
mov r8d, esi
xor edx, edx
lea r12d, [r12 + rsi*8]
call fcn.29e85b462a0
mov r8d, dword [rbp + 0x330]
mov rdx, qword [rsp + 0x78]
lea rcx, [rbp + 0x100]
call fcn.29e85b45d20
mov edx, r15d
test esi, esi
je 0x29e85bcd0fc
cmp esi, 0x20
jb 0x29e85bcd0d9
movdqa xmm1, xmmword [str.6666666666666666jjjjjjjjjjjjjjjj]
mov eax, esi
mov r8d, esi
and eax, 0x1f
sub r8d, eax
nop dword [rax]
mov eax, edx
movdqu xmm0, xmmword [rbp + rax + 0x100]
pxor xmm0, xmm1
movdqu xmmword [rbp + rax + 0x100], xmm0
lea eax, [rdx + 0x10]
add edx, 0x20
movdqu xmm0, xmmword [rbp + rax + 0x100]
pxor xmm0, xmm1
movdqu xmmword [rbp + rax + 0x100], xmm0
cmp edx, r8d
jb 0x29e85bcd0a0
cmp edx, esi
jae 0x29e85bcd0fc
mov eax, edx
lea rcx, [rbp + 0x100]
add rcx, rax
mov eax, esi
sub eax, edx
mov edx, eax
nop
xor byte [rcx], 0x36
lea rcx, [rcx + 1]
dec rdx
jne 0x29e85bcd0f0
lea rdx, [rbp + 0x100]
lea rcx, [rbp - 0x30]
call qword [rsp + 0x38]
lea eax, [rbx - 4]
lea rcx, [rbp + 0xb0]
xor edx, edx
mov r8d, eax
mov ebx, eax
call fcn.29e85b462a0
mov r9d, dword [rsp + 0x20]
mov eax, r12d
shr eax, 0x18
mov edx, r12d
shr edx, 0x10
mov byte [rbp + rbx + 0xb0], al
lea eax, [r9 - 3]
mov byte [rbp + rax + 0xb0], dl
lea eax, [r9 - 2]
mov edx, r12d
shr edx, 8
mov byte [rbp + rax + 0xb0], dl
lea eax, [r9 - 1]
mov byte [rbp + rax + 0xb0], r12b
test edi, edi
je 0x29e85bcd294
cmp byte [rbp + 0x338], r15b
je 0x29e85bcd20d
mov rdx, qword [rsp + 0x50]
mov r12, qword [rsp + 0x38]
lea rcx, [rbp - 0x30]
mov ebx, r14d
sub ebx, esi
call r12
mov edx, esi
add rdx, qword [rsp + 0x50]
lea rcx, [rbp + 0x180]
mov r8d, ebx
mov r13d, ebx
call fcn.29e85b45d20
mov rdx, qword [rsp + 0x48]
mov r8d, esi
lea rcx, [rbp + 0x180]
add rcx, r13
sub r8d, ebx
call fcn.29e85b45d20
lea rdx, [rbp + 0x180]
lea rcx, [rbp - 0x30]
call r12
xor edx, edx
mov eax, edi
div esi
dec eax
cmp eax, 1
jbe 0x29e85bcd28a
mov r15, qword [rsp + 0x48]
mov r14, qword [rsp + 0x38]
mov ebx, esi
lea r12d, [rax - 1]
nop
mov edx, ebx
lea rcx, [rbp - 0x30]
sub rdx, r13
add rdx, r15
call r14
add ebx, esi
dec r12
jne 0x29e85bcd1f0
mov r14d, dword [rsp + 0x30]
jmp 0x29e85bcd287
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
lea r8d, [rsi - 0xd]
mov eax, dword [rcx + 8]
movsd xmm0, qword [rcx]
movsd qword [rbp + 0x180], xmm0
mov dword [rbp + 0x188], eax
movzx eax, byte [rcx + 0xc]
lea rcx, [rbp + 0x18d]
mov byte [rbp + 0x18c], al
call fcn.29e85b45d20
lea rdx, [rbp + 0x180]
lea rcx, [rbp - 0x30]
call qword [rsp + 0x38]
xor edx, edx
mov eax, edi
div esi
cmp eax, 1
jbe 0x29e85bcd28f
mov r13, qword [rsp + 0x48]
mov r15, qword [rsp + 0x38]
mov ebx, esi
lea r12d, [rax - 1]
mov eax, ebx
lea rdx, [r13 - 0xd]
lea rcx, [rbp - 0x30]
add rdx, rax
call r15
add ebx, esi
dec r12
jne 0x29e85bcd270
xor r15d, r15d
mov r13d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0x20]
mov r12d, dword [rsp + 0x2c]
xor eax, eax
mov qword [rbp + 0xc0], rax
mov qword [rbp + 0xc8], rax
mov qword [rbp + 0xd0], rax
mov qword [rbp + 0xd8], rax
mov qword [rbp + 0xe0], rax
mov qword [rbp + 0xe8], rax
mov qword [rbp + 0xf0], rax
mov qword [rbp + 0xf8], rax
mov eax, dword [rsp + 0x40]
add eax, r12d
mov dword [rsp + 0x60], eax
cmp r12d, eax
ja 0x29e85bcd4da
movaps xmmword [rsp + 0x390], xmm6
nop
mov ebx, r12d
mov r11d, r12d
mov r8d, r15d
xor ebx, dword [rsp + 0x5c]
xor r11d, dword [rsp + 0x58]
dec ebx
dec r11d
sar ebx, 0x1f
sar r11d, 0x1f
movsx eax, bl
movd xmm6, eax
punpcklbw xmm6, xmm6
punpcklwd xmm6, xmm6
pshufd xmm6, xmm6, 0
test esi, esi
je 0x29e85bcd403
mov edx, dword [rsp + 0x64]
movzx r12d, bl
lea r10, [rbp + 0x200]
not r12b
movzx eax, r12b
or al, r11b
mov byte [rsp + 0x24], al
mov eax, esi
movzx r13d, byte [rsp + 0x24]
sub eax, r9d
neg edx
mov dword [rsp + 0x30], edx
mov r15d, eax
nop dword [rax + rax]
xor r9b, r9b
mov eax, edi
cmp edi, r14d
jae 0x29e85bcd371
mov rcx, qword [rsp + 0x50]
jmp 0x29e85bcd38a
mov ecx, r14d
add rcx, qword [rbp + 0x320]
cmp rax, rcx
jae 0x29e85bcd38f
mov rcx, qword [rsp + 0x48]
mov eax, edi
sub eax, r14d
movzx r9d, byte [rax + rcx]
add edx, r8d
inc edi
mov ecx, edx
not ecx
sar ecx, 0x1f
and cl, r11b
movzx eax, cl
and cl, 0x80
not al
and al, r9b
or al, cl
lea ecx, [rdx - 1]
not ecx
sar ecx, 0x1f
and cl, r11b
not cl
and al, cl
and al, r13b
cmp r8d, r15d
jb 0x29e85bcd3e0
mov ecx, r8d
sub ecx, esi
add ecx, dword [rsp + 0x20]
movzx edx, byte [rbp + rcx + 0xb0]
movzx ecx, r12b
and dl, bl
and cl, al
movzx eax, dl
or al, cl
mov edx, dword [rsp + 0x30]
inc r8d
mov byte [r10], al
inc r10
cmp r8d, esi
jb 0x29e85bcd360
mov r13d, dword [rsp + 0x28]
mov r12d, dword [rsp + 0x2c]
xor r15d, r15d
lea rdx, [rbp + 0x200]
lea rcx, [rbp - 0x30]
call qword [rsp + 0x38]
lea rdx, [rbp + 0x200]
lea rcx, [rbp - 0x30]
call qword [rsp + 0x68]
mov edx, r15d
test r13d, r13d
je 0x29e85bcd4ba
cmp r13d, 0x20
jb 0x29e85bcd493
mov eax, r13d
mov r8d, r13d
and eax, 0x1f
sub r8d, eax
nop
mov eax, edx
movdqu xmm0, xmmword [rbp + rax + 0xc0]
movdqu xmm1, xmmword [rbp + rax + 0x200]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rax + 0xc0], xmm1
lea eax, [rdx + 0x10]
add edx, 0x20
movdqu xmm0, xmmword [rbp + rax + 0xc0]
movdqu xmm1, xmmword [rbp + rax + 0x200]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rax + 0xc0], xmm1
cmp edx, r8d
jb 0x29e85bcd440
cmp edx, r13d
jae 0x29e85bcd4ba
mov r8d, r13d
mov ecx, edx
sub r8d, edx
movzx eax, byte [rbp + rcx + 0x200]
lea rcx, [rcx + 1]
and al, bl
or byte [rbp + rcx + 0xbf], al
dec r8
jne 0x29e85bcd4a0
mov r9d, dword [rsp + 0x20]
inc r12d
mov dword [rsp + 0x2c], r12d
cmp r12d, dword [rsp + 0x60]
jbe 0x29e85bcd2f0
movaps xmm6, xmmword [rsp + 0x390]
lea rcx, [rbp - 0x68]
call fcn.29e85b7a140
mov rdx, qword [rbp - 0x80]
lea rcx, [rbp - 0x68]
mov rdx, qword [rdx]
xor r8d, r8d
call fcn.29e85b79eb0
cmp byte [rbp + 0x338], 0
mov r14, qword [rsp + 0x3b0]
mov r12, qword [rsp + 0x3b8]
je 0x29e85bcd55c
mov r8d, dword [rbp + 0x330]
mov rdx, qword [rsp + 0x78]
movabs rax, 0x5c5c5c5c5c5c5c5c
lea rcx, [rbp - 0x68]
mov qword [rbp + 0x100], rax
mov qword [rbp + 0x108], rax
mov qword [rbp + 0x110], rax
mov qword [rbp + 0x118], rax
mov qword [rbp + 0x120], rax
call fcn.29e85b79f50
mov r8d, 0x28
jmp 0x29e85bcd5e1
test esi, esi
je 0x29e85bcd5de
cmp esi, 0x20
jb 0x29e85bcd5bb
movdqa xmm1, xmmword [0x29e85c72f60]
mov eax, esi
mov edx, esi
and eax, 0x1f
sub edx, eax
nop word [rax + rax]
movdqu xmm0, xmmword [rbp + r15 + 0x100]
lea eax, [r15 + 0x10]
pxor xmm0, xmm1
movdqu xmmword [rbp + r15 + 0x100], xmm0
movdqu xmm0, xmmword [rbp + rax + 0x100]
add r15d, 0x20
pxor xmm0, xmm1
movdqu xmmword [rbp + rax + 0x100], xmm0
cmp r15d, edx
jb 0x29e85bcd580
cmp r15d, esi
jae 0x29e85bcd5de
lea rcx, [rbp + 0x100]
mov eax, r15d
mov edx, esi
add rcx, rax
sub edx, r15d
xor byte [rcx], 0x6a
lea rcx, [rcx + 1]
dec rdx
jne 0x29e85bcd5d2
mov r8d, esi
lea rdx, [rbp + 0x100]
lea rcx, [rbp - 0x68]
call fcn.29e85b79f50
lea rdx, [rbp + 0xc0]
lea rcx, [rbp - 0x68]
mov r8d, r13d
call fcn.29e85b79f50
mov rdx, qword [rbp - 0x70]
lea r8, [rsp + 0x70]
lea rcx, [rbp - 0x68]
call fcn.29e85b79dc0
mov rcx, qword [rbp - 0x78]
mov r15, qword [rsp + 0x3a8]
test rcx, rcx
je 0x29e85bcd62e
mov eax, dword [rsp + 0x70]
mov qword [rcx], rax
lea rcx, [rbp - 0x68]
call fcn.29e85b79f60
mov rcx, qword [rbp + 0x280]
xor rcx, rsp
call fcn.29e85b464e0
add rsp, 0x3c0
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret