Function at 0x140066450
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
and rsp, 0xffffffffffffffe0
mov ebx, dword [rbp + 0x98]
mov eax, 0xffffff53
cmp ebx, 0xc
jb 0x140066912
mov r13, rcx
mov ecx, dword [rbp + 0x88]
test ecx, ecx
je 0x140066912
test r13, r13
je 0x140066912
cmp ebx, 0x10
ja 0x140066912
mov r15d, r9d
mov r14, r8
mov rdi, rdx
mov r9, qword [rbp + 0x80]
cmp ecx, 0xc
jne 0x1400664d5
mov eax, dword [r9 + 8]
mov dword [rsp + 0x68], eax
mov rax, qword [r9]
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x6c], 0x1000000
jmp 0x1400664f8
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
mov dword [rsp + 0x30], 0x10
mov rcx, r13
xor edx, edx
xor r8d, r8d
call fcn.140065750
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x80], rax
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x88], eax
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x8c], eax
cmp r15d, 0x10
mov dword [rsp + 0x5c], r15d
jae 0x14006652e
mov r12, rdi
jmp 0x1400666fb
mov qword [rsp + 0x78], r13
mov ebx, r15d
shr ebx, 4
movzx r13d, byte [rsp + 0x6f]
movzx esi, byte [rsp + 0x6e]
movzx eax, byte [rsp + 0x6c]
mov byte [rsp + 0x3f], al
movzx r12d, byte [rsp + 0x6d]
inc r13b
xor r15d, r15d
jmp 0x14006658b
mov rax, qword [r14 + r15]
xor rax, qword [rsp + 0x40]
mov qword [rdi + r15], rax
mov rax, qword [r14 + r15 + 8]
xor rax, qword [rsp + 0x48]
mov qword [rdi + r15 + 8], rax
inc r13b
add r15, 0x10
test ebx, ebx
je 0x1400666e4
mov byte [rsp + 0x6f], r13b
test r13b, r13b
jne 0x1400665c0
inc sil
mov byte [rsp + 0x6e], sil
jne 0x1400665c0
inc r12b
mov byte [rsp + 0x6d], r12b
jne 0x1400665bb
movzx eax, byte [rsp + 0x3f]
inc al
mov byte [rsp + 0x3f], al
mov byte [rsp + 0x6c], al
xor r12d, r12d
xor esi, esi
nop dword [rax]
mov rcx, qword [rsp + 0x78]
lea rdx, [rsp + 0x60]
lea r8, [rsp + 0x40]
call fcn.140062ab0
test eax, eax
jne 0x140066912
dec ebx
lea eax, [rdi + r15]
lea ecx, [r14 + r15]
or ecx, eax
test cl, 7
je 0x140066560
movzx eax, byte [r14 + r15]
xor al, byte [rsp + 0x40]
mov byte [rdi + r15], al
movzx eax, byte [r14 + r15 + 1]
xor al, byte [rsp + 0x41]
mov byte [rdi + r15 + 1], al
movzx eax, byte [r14 + r15 + 2]
xor al, byte [rsp + 0x42]
mov byte [rdi + r15 + 2], al
movzx eax, byte [r14 + r15 + 3]
xor al, byte [rsp + 0x43]
mov byte [rdi + r15 + 3], al
movzx eax, byte [r14 + r15 + 4]
xor al, byte [rsp + 0x44]
mov byte [rdi + r15 + 4], al
movzx eax, byte [r14 + r15 + 5]
xor al, byte [rsp + 0x45]
mov byte [rdi + r15 + 5], al
movzx eax, byte [r14 + r15 + 6]
xor al, byte [rsp + 0x46]
mov byte [rdi + r15 + 6], al
movzx eax, byte [r14 + r15 + 7]
xor al, byte [rsp + 0x47]
mov byte [rdi + r15 + 7], al
movzx eax, byte [r14 + r15 + 8]
xor al, byte [rsp + 0x48]
mov byte [rdi + r15 + 8], al
movzx eax, byte [r14 + r15 + 9]
xor al, byte [rsp + 0x49]
mov byte [rdi + r15 + 9], al
movzx eax, byte [r14 + r15 + 0xa]
xor al, byte [rsp + 0x4a]
mov byte [rdi + r15 + 0xa], al
movzx eax, byte [r14 + r15 + 0xb]
xor al, byte [rsp + 0x4b]
mov byte [rdi + r15 + 0xb], al
movzx eax, byte [r14 + r15 + 0xc]
xor al, byte [rsp + 0x4c]
mov byte [rdi + r15 + 0xc], al
movzx eax, byte [r14 + r15 + 0xd]
xor al, byte [rsp + 0x4d]
mov byte [rdi + r15 + 0xd], al
movzx eax, byte [r14 + r15 + 0xe]
xor al, byte [rsp + 0x4e]
mov byte [rdi + r15 + 0xe], al
movzx eax, byte [r14 + r15 + 0xf]
xor al, byte [rsp + 0x4f]
mov byte [rdi + r15 + 0xf], al
jmp 0x14006657c
lea r12, [rdi + r15]
add r14, r15
mov ebx, dword [rbp + 0x98]
mov r13, qword [rsp + 0x78]
mov r15d, dword [rsp + 0x5c]
mov esi, r15d
and esi, 0xf
je 0x1400668c4
inc byte [rsp + 0x6f]
jne 0x14006671d
inc byte [rsp + 0x6e]
jne 0x14006671d
inc byte [rsp + 0x6d]
jne 0x14006671d
inc byte [rsp + 0x6c]
lea rdx, [rsp + 0x60]
lea r15, [rsp + 0x40]
mov rcx, r13
mov r8, r15
call fcn.140062ab0
test eax, eax
jne 0x140066912
mov eax, r14d
or eax, r12d
or eax, esi
test al, 7
je 0x140066751
mov eax, esi
cmp esi, 8
jae 0x140066779
xor ecx, ecx
jmp 0x1400667c1
cmp esi, 8
mov r15d, dword [rsp + 0x5c]
jb 0x1400668c4
mov eax, esi
shr eax, 3
lea rcx, [rax - 1]
cmp rcx, 3
jae 0x140066845
xor ecx, ecx
jmp 0x140066890
mov rdx, r12
sub rdx, r15
xor ecx, ecx
cmp rdx, 0x20
jb 0x1400667c1
mov rdx, r12
sub rdx, r14
cmp rdx, 0x20
mov r15d, dword [rsp + 0x5c]
jb 0x1400667c6
mov ecx, eax
and ecx, 0xfffffff8
xor edx, edx
nop
mov r8, qword [r14 + rdx]
xor r8, qword [rsp + rdx + 0x40]
mov qword [r12 + rdx], r8
add rdx, 8
cmp rcx, rdx
jne 0x1400667a0
cmp rcx, rax
je 0x1400668c4
jmp 0x1400667c6
mov r15d, dword [rsp + 0x5c]
mov rdx, rcx
not rdx
add rdx, rax
mov r8, rax
and r8, 3
je 0x1400667f6
nop dword [rax + rax]
movzx r9d, byte [r14 + rcx]
xor r9b, byte [rsp + rcx + 0x40]
mov byte [r12 + rcx], r9b
inc rcx
dec r8
jne 0x1400667e0
cmp rdx, 3
jb 0x1400668c4
movzx edx, byte [r14 + rcx]
xor dl, byte [rsp + rcx + 0x40]
mov byte [r12 + rcx], dl
movzx edx, byte [r14 + rcx + 1]
xor dl, byte [rsp + rcx + 0x41]
mov byte [r12 + rcx + 1], dl
movzx edx, byte [r14 + rcx + 2]
xor dl, byte [rsp + rcx + 0x42]
mov byte [r12 + rcx + 2], dl
movzx edx, byte [r14 + rcx + 3]
xor dl, byte [rsp + rcx + 0x43]
mov byte [r12 + rcx + 3], dl
add rcx, 4
cmp rax, rcx
jne 0x140066800
jmp 0x1400668c4
xor ecx, ecx
nop word [rax + rax]
mov rdx, qword [r14 + rcx*8]
xor rdx, qword [rsp + rcx*8 + 0x40]
mov qword [r12 + rcx*8], rdx
mov rdx, qword [r14 + rcx*8 + 8]
xor rdx, qword [rsp + rcx*8 + 0x48]
mov qword [r12 + rcx*8 + 8], rdx
mov rdx, qword [r14 + rcx*8 + 0x10]
xor rdx, qword [rsp + rcx*8 + 0x50]
mov qword [r12 + rcx*8 + 0x10], rdx
mov rdx, qword [r14 + rcx*8 + 0x18]
xor rdx, qword [rsp + rcx*8 + 0x58]
mov qword [r12 + rcx*8 + 0x18], rdx
add rcx, 4
jne 0x140066850
cmp esi, 8
jb 0x1400668c4
lea rdx, [r12 + rcx*8]
lea r8, [r14 + rcx*8]
lea rcx, [rsp + rcx*8]
add rcx, 0x40
xor r9d, r9d
nop dword [rax + rax]
mov r10, qword [r8 + r9*8]
xor r10, qword [rcx + r9*8]
mov qword [rdx + r9*8], r10
inc r9
cmp rax, r9
jne 0x1400668b0
mov r14, qword [rbp + 0x90]
xor eax, eax
test r14, r14
je 0x140066912
mov r8d, dword [rbp + 0xa8]
mov rdx, qword [rbp + 0xa0]
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r15d
mov rcx, r13
mov r9, rdi
call fcn.140065750
lea rdx, [rsp + 0x80]
lea r8, [rsp + 0x40]
mov rcx, r13
call fcn.140062ab0
test eax, eax
je 0x140066923
lea rsp, [rbp + 0x18]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov ecx, ebx
mov eax, r14d
or eax, ebx
test al, 7
je 0x140066943
mov eax, 0
test ebx, ebx
je 0x140066912
cmp ebx, 8
jae 0x140066963
xor edx, edx
jmp 0x1400669e0
mov eax, 0
cmp ebx, 8
jb 0x140066912
mov edx, ebx
shr edx, 3
cmp ebx, 0x20
jae 0x1400669f8
xor r8d, r8d
jmp 0x140066a40
cmp ebx, 0x20
jae 0x14006696c
xor edx, edx
jmp 0x1400669ac
mov edx, ecx
and edx, 0xffffffe0
xor eax, eax
movups xmm0, xmmword [r14 + rax]
movups xmm1, xmmword [r14 + rax + 0x10]
xorps xmm0, xmmword [rsp + rax + 0x40]
xorps xmm1, xmmword [rsp + rax + 0x50]
movups xmmword [r14 + rax], xmm0
movups xmmword [r14 + rax + 0x10], xmm1
add rax, 0x20
cmp rdx, rax
jne 0x140066973
xor eax, eax
cmp rdx, rcx
je 0x140066912
test cl, 0x18
je 0x1400669e0
mov rax, rdx
mov edx, ecx
and edx, 0xfffffff8
nop word cs:[rax + rax]
mov r8, qword [rsp + rax + 0x40]
xor qword [r14 + rax], r8
add rax, 8
cmp rdx, rax
jne 0x1400669c0
xor eax, eax
cmp rdx, rcx
je 0x140066912
nop dword [rax]
movzx eax, byte [rsp + rdx + 0x40]
xor byte [r14 + rdx], al
inc rdx
xor eax, eax
cmp rcx, rdx
jne 0x1400669e0
jmp 0x140066912
mov r8d, edx
and r8d, 0xfffffffc
and ecx, 0xffffffe0
xor eax, eax
movups xmm0, xmmword [r14 + rax]
movups xmm1, xmmword [r14 + rax + 0x10]
xorps xmm0, xmmword [rsp + rax + 0x40]
xorps xmm1, xmmword [rsp + rax + 0x50]
movups xmmword [r14 + rax], xmm0
movups xmmword [r14 + rax + 0x10], xmm1
add rax, 0x20
cmp rcx, rax
jne 0x140066a04
xor eax, eax
cmp r8, rdx
je 0x140066912
nop dword [rax + rax]
mov rax, qword [rsp + r8*8 + 0x40]
xor qword [r14 + r8*8], rax
inc r8
xor eax, eax
cmp rdx, r8
jne 0x140066a40
jmp 0x140066912