Function at 0x4c6733
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rbx
push r12
push r13
push r14
push r15
lea rsp, [rsp - 0x48]
mov r10, qword [rsp + 0xa0]
mov r11, qword [rsp + 0xa8]
lea rsp, [rsp - 0xa0]
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x50], xmm7
movaps xmmword [rsp + 0x60], xmm8
movaps xmmword [rsp + 0x70], xmm9
movaps xmmword [rsp + 0x80], xmm10
movaps xmmword [rsp + 0x90], xmm11
movaps xmmword [rsp + 0xa0], xmm12
movaps xmmword [rsp + 0xb0], xmm13
movaps xmmword [rsp + 0xc0], xmm14
movaps xmmword [rsp + 0xd0], xmm15
mov rbp, rsp
mov r12, rcx
mov r13, rdx
mov r14, r8
mov r15, r9
lea rcx, [r11]
lea rdx, [rbp + 0x20]
lea r8, [r10]
call sym.AES_encrypt
mov eax, dword [r15 + 0xf0]
mov rbx, r14
mov edx, eax
shl rax, 7
sub rax, 0x60
sub rsp, rax
mov rax, rsp
mov rcx, r15
mov r10d, edx
call sym._bsaes_key_convert
pxor xmm7, xmmword [rsp]
movdqa xmmword [rax], xmm6
movdqa xmmword [rsp], xmm7
xor eax, eax
and r14, 0xfffffffffffffff0
test ebx, 0xf
setne al
shl rax, 4
sub r14, rax
sub rsp, 0x80
movdqa xmm6, xmmword [rbp + 0x20]
pxor xmm14, xmm14
movdqa xmm12, xmmword [0x004c7170]
pcmpgtd xmm14, xmm6
sub r14, 0x80
jb 0x4c6a80
jmp 0x4c6840
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
movdqa xmm15, xmm6
movdqa xmmword [rsp], xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
movdqa xmm0, xmm6
movdqa xmmword [rsp + 0x10], xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
movdqu xmm7, xmmword [r12]
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
movdqa xmm1, xmm6
movdqa xmmword [rsp + 0x20], xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
movdqu xmm8, xmmword [r12 + 0x10]
pxor xmm15, xmm7
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
movdqa xmm2, xmm6
movdqa xmmword [rsp + 0x30], xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
movdqu xmm9, xmmword [r12 + 0x20]
pxor xmm0, xmm8
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
movdqa xmm3, xmm6
movdqa xmmword [rsp + 0x40], xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
movdqu xmm10, xmmword [r12 + 0x30]
pxor xmm1, xmm9
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
movdqa xmm4, xmm6
movdqa xmmword [rsp + 0x50], xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
movdqu xmm11, xmmword [r12 + 0x40]
pxor xmm2, xmm10
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
movdqa xmm5, xmm6
movdqa xmmword [rsp + 0x60], xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
movdqu xmm12, xmmword [r12 + 0x50]
pxor xmm3, xmm11
movdqu xmm13, xmmword [r12 + 0x60]
pxor xmm4, xmm12
movdqu xmm14, xmmword [r12 + 0x70]
lea r12, [r12 + 0x80]
movdqa xmmword [rsp + 0x70], xmm6
pxor xmm5, xmm13
lea rax, [rsp + 0x80]
pxor xmm6, xmm14
mov r10d, edx
call sym._bsaes_decrypt8
pxor xmm15, xmmword [rsp]
pxor xmm0, xmmword [rsp + 0x10]
movdqu xmmword [r13], xmm15
pxor xmm5, xmmword [rsp + 0x20]
movdqu xmmword [r13 + 0x10], xmm0
pxor xmm3, xmmword [rsp + 0x30]
movdqu xmmword [r13 + 0x20], xmm5
pxor xmm1, xmmword [rsp + 0x40]
movdqu xmmword [r13 + 0x30], xmm3
pxor xmm6, xmmword [rsp + 0x50]
movdqu xmmword [r13 + 0x40], xmm1
pxor xmm2, xmmword [rsp + 0x60]
movdqu xmmword [r13 + 0x50], xmm6
pxor xmm4, xmmword [rsp + 0x70]
movdqu xmmword [r13 + 0x60], xmm2
movdqu xmmword [r13 + 0x70], xmm4
lea r13, [r13 + 0x80]
movdqa xmm6, xmmword [rsp + 0x70]
pxor xmm14, xmm14
movdqa xmm12, xmmword [0x004c7170]
pcmpgtd xmm14, xmm6
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
sub r14, 0x80
jae 0x4c6840
add r14, 0x80
je 0x4c6ef5
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
movdqa xmm15, xmm6
movdqa xmmword [rsp], xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
movdqa xmm0, xmm6
movdqa xmmword [rsp + 0x10], xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
movdqu xmm7, xmmword [r12]
cmp r14, 0x10
je 0x4c6ec0
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
movdqa xmm1, xmm6
movdqa xmmword [rsp + 0x20], xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
movdqu xmm8, xmmword [r12 + 0x10]
cmp r14, 0x20
je 0x4c6e70
pxor xmm15, xmm7
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
movdqa xmm2, xmm6
movdqa xmmword [rsp + 0x30], xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
movdqu xmm9, xmmword [r12 + 0x20]
cmp r14, 0x30
je 0x4c6e10
pxor xmm0, xmm8
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
movdqa xmm3, xmm6
movdqa xmmword [rsp + 0x40], xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
movdqu xmm10, xmmword [r12 + 0x30]
cmp r14, 0x40
je 0x4c6db0
pxor xmm1, xmm9
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
movdqa xmm4, xmm6
movdqa xmmword [rsp + 0x50], xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
movdqu xmm11, xmmword [r12 + 0x40]
cmp r14, 0x50
je 0x4c6d40
pxor xmm2, xmm10
pshufd xmm13, xmm14, 0x13
pxor xmm14, xmm14
movdqa xmm5, xmm6
movdqa xmmword [rsp + 0x60], xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
pcmpgtd xmm14, xmm6
pxor xmm6, xmm13
movdqu xmm12, xmmword [r12 + 0x50]
cmp r14, 0x60
je 0x4c6cc0
pxor xmm3, xmm11
movdqu xmm13, xmmword [r12 + 0x60]
pxor xmm4, xmm12
movdqa xmmword [rsp + 0x70], xmm6
lea r12, [r12 + 0x70]
pxor xmm5, xmm13
lea rax, [rsp + 0x80]
mov r10d, edx
call sym._bsaes_decrypt8
pxor xmm15, xmmword [rsp]
pxor xmm0, xmmword [rsp + 0x10]
movdqu xmmword [r13], xmm15
pxor xmm5, xmmword [rsp + 0x20]
movdqu xmmword [r13 + 0x10], xmm0
pxor xmm3, xmmword [rsp + 0x30]
movdqu xmmword [r13 + 0x20], xmm5
pxor xmm1, xmmword [rsp + 0x40]
movdqu xmmword [r13 + 0x30], xmm3
pxor xmm6, xmmword [rsp + 0x50]
movdqu xmmword [r13 + 0x40], xmm1
pxor xmm2, xmmword [rsp + 0x60]
movdqu xmmword [r13 + 0x50], xmm6
movdqu xmmword [r13 + 0x60], xmm2
lea r13, [r13 + 0x70]
movdqa xmm6, xmmword [rsp + 0x70]
jmp 0x4c6ef5
pxor xmm3, xmm11
lea r12, [r12 + 0x60]
pxor xmm4, xmm12
lea rax, [rsp + 0x80]
mov r10d, edx
call sym._bsaes_decrypt8
pxor xmm15, xmmword [rsp]
pxor xmm0, xmmword [rsp + 0x10]
movdqu xmmword [r13], xmm15
pxor xmm5, xmmword [rsp + 0x20]
movdqu xmmword [r13 + 0x10], xmm0
pxor xmm3, xmmword [rsp + 0x30]
movdqu xmmword [r13 + 0x20], xmm5
pxor xmm1, xmmword [rsp + 0x40]
movdqu xmmword [r13 + 0x30], xmm3
pxor xmm6, xmmword [rsp + 0x50]
movdqu xmmword [r13 + 0x40], xmm1
movdqu xmmword [r13 + 0x50], xmm6
lea r13, [r13 + 0x60]
movdqa xmm6, xmmword [rsp + 0x60]
jmp 0x4c6ef5
pxor xmm2, xmm10
lea r12, [r12 + 0x50]
pxor xmm3, xmm11
lea rax, [rsp + 0x80]
mov r10d, edx
call sym._bsaes_decrypt8
pxor xmm15, xmmword [rsp]
pxor xmm0, xmmword [rsp + 0x10]
movdqu xmmword [r13], xmm15
pxor xmm5, xmmword [rsp + 0x20]
movdqu xmmword [r13 + 0x10], xmm0
pxor xmm3, xmmword [rsp + 0x30]
movdqu xmmword [r13 + 0x20], xmm5
pxor xmm1, xmmword [rsp + 0x40]
movdqu xmmword [r13 + 0x30], xmm3
movdqu xmmword [r13 + 0x40], xmm1
lea r13, [r13 + 0x50]
movdqa xmm6, xmmword [rsp + 0x50]
jmp 0x4c6ef5
pxor xmm1, xmm9
lea r12, [r12 + 0x40]
pxor xmm2, xmm10
lea rax, [rsp + 0x80]
mov r10d, edx
call sym._bsaes_decrypt8
pxor xmm15, xmmword [rsp]
pxor xmm0, xmmword [rsp + 0x10]
movdqu xmmword [r13], xmm15
pxor xmm5, xmmword [rsp + 0x20]
movdqu xmmword [r13 + 0x10], xmm0
pxor xmm3, xmmword [rsp + 0x30]
movdqu xmmword [r13 + 0x20], xmm5
movdqu xmmword [r13 + 0x30], xmm3
lea r13, [r13 + 0x40]
movdqa xmm6, xmmword [rsp + 0x40]
jmp 0x4c6ef5
pxor xmm0, xmm8
lea r12, [r12 + 0x30]
pxor xmm1, xmm9
lea rax, [rsp + 0x80]
mov r10d, edx
call sym._bsaes_decrypt8
pxor xmm15, xmmword [rsp]
pxor xmm0, xmmword [rsp + 0x10]
movdqu xmmword [r13], xmm15
pxor xmm5, xmmword [rsp + 0x20]
movdqu xmmword [r13 + 0x10], xmm0
movdqu xmmword [r13 + 0x20], xmm5
lea r13, [r13 + 0x30]
movdqa xmm6, xmmword [rsp + 0x30]
jmp 0x4c6ef5
pxor xmm15, xmm7
lea r12, [r12 + 0x20]
pxor xmm0, xmm8
lea rax, [rsp + 0x80]
mov r10d, edx
call sym._bsaes_decrypt8
pxor xmm15, xmmword [rsp]
pxor xmm0, xmmword [rsp + 0x10]
movdqu xmmword [r13], xmm15
movdqu xmmword [r13 + 0x10], xmm0
lea r13, [r13 + 0x20]
movdqa xmm6, xmmword [rsp + 0x20]
jmp 0x4c6ef5
pxor xmm7, xmm15
lea r12, [r12 + 0x10]
movdqa xmmword [rbp + 0x20], xmm7
lea rcx, [rbp + 0x20]
lea rdx, [rbp + 0x20]
lea r8, [r15]
call sym.AES_decrypt
pxor xmm15, xmmword [rbp + 0x20]
movdqu xmmword [r13], xmm15
lea r13, [r13 + 0x10]
movdqa xmm6, xmmword [rsp + 0x10]
and ebx, 0xf
je 0x4c6fa0
pxor xmm14, xmm14
movdqa xmm12, xmmword [0x004c7170]
pcmpgtd xmm14, xmm6
pshufd xmm13, xmm14, 0x13
movdqa xmm5, xmm6
paddq xmm6, xmm6
pand xmm13, xmm12
movdqu xmm15, xmmword [r12]
pxor xmm6, xmm13
lea rcx, [rbp + 0x20]
pxor xmm15, xmm6
lea rdx, [rbp + 0x20]
movdqa xmmword [rbp + 0x20], xmm15
lea r8, [r15]
call sym.AES_decrypt
pxor xmm6, xmmword [rbp + 0x20]
mov rdx, r13
movdqu xmmword [r13], xmm6
movzx eax, byte [r12 + 0x10]
movzx ecx, byte [rdx]
lea r12, [r12 + 1]
mov byte [rdx], al
mov byte [rdx + 0x10], cl
lea rdx, [rdx + 1]
sub ebx, 1
jne 0x4c6f58
movdqu xmm15, xmmword [r13]
lea rcx, [rbp + 0x20]
pxor xmm15, xmm5
lea rdx, [rbp + 0x20]
movdqa xmmword [rbp + 0x20], xmm15
lea r8, [r15]
call sym.AES_decrypt
pxor xmm5, xmmword [rbp + 0x20]
movdqu xmmword [r13], xmm5
lea rax, [rsp]
pxor xmm0, xmm0
movdqa xmmword [rax], xmm0
movdqa xmmword [rax + 0x10], xmm0
lea rax, [rax + 0x20]
cmp rbp, rax
ja 0x4c6fa8
lea rax, [rbp + 0x78]
movaps xmm6, xmmword [rbp + 0x40]
movaps xmm7, xmmword [rbp + 0x50]
movaps xmm8, xmmword [rbp + 0x60]
movaps xmm9, xmmword [rbp + 0x70]
movaps xmm10, xmmword [rbp + 0x80]
movaps xmm11, xmmword [rbp + 0x90]
movaps xmm12, xmmword [rbp + 0xa0]
movaps xmm13, xmmword [rbp + 0xb0]
movaps xmm14, xmmword [rbp + 0xc0]
movaps xmm15, xmmword [rbp + 0xd0]
lea rax, [rax + 0xa0]
mov r15, qword [rax - 0x30]
mov r14, qword [rax - 0x28]
mov r13, qword [rax - 0x20]
mov r12, qword [rax - 0x18]
mov rbx, qword [rax - 0x10]
mov rbp, qword [rax - 8]
lea rsp, [rax]
repz ret