Function at 0x54d570
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x308
mov r15d, 0x20
xor r14d, r14d
mov rax, qword [rcx]
mov r12, qword [rcx + 0x10]
mov rsi, qword [rcx + 0x20]
mov rdi, qword [rcx + 0x28]
mov r10, qword [rcx + 0x30]
mov r11, qword [rcx + 0x38]
mov r13, qword [rcx + 0x18]
mov rbx, qword [rcx + 0x48]
mov r9, rdx
mov rdx, qword [rcx + 8]
mov rcx, qword [rcx + 0x40]
mov qword [rsp + 0x360], r8
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x90], r12
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], r10
mov qword [rsp + 0xb8], r11
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0xe0], r12
mov qword [rsp + 0xf0], rsi
mov qword [rsp + 0xf8], rdi
mov qword [rsp + 0x100], r10
mov qword [rsp + 0x108], r11
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rbx
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x98], r13
mov qword [rsp + 0xe8], r13
mov qword [rsp + 0x128], rdx
mov qword [rsp + 0x140], rsi
mov qword [rsp + 0x148], rdi
mov qword [rsp + 0x150], r10
mov qword [rsp + 0x160], rcx
mov qword [rsp + 0x168], rbx
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], rdx
mov qword [rsp + 0x180], rax
mov qword [rsp + 0x188], rdx
mov qword [rsp + 0x1a0], rsi
mov qword [rsp + 0x1a8], rdi
mov qword [rsp + 0x1b0], r10
mov qword [rsp + 0x130], r12
mov qword [rsp + 0x158], r11
mov qword [rsp + 0x190], r12
mov qword [rsp + 0x1b8], r11
lea r12, [rsp + 0x1c0]
mov qword [rsp + 0x138], r13
mov qword [rsp + 0x198], r13
mov rax, qword [r9]
mov rdx, qword [r9 + 8]
mov rbx, qword [r9 + 0x18]
mov rcx, qword [r9 + 0x10]
mov rsi, qword [r9 + 0x20]
mov rdi, qword [r9 + 0x28]
mov r10, qword [r9 + 0x30]
mov r11, qword [r9 + 0x38]
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x1c8], rdx
mov qword [rsp + 0x1d8], rbx
mov qword [rsp + 0x1d0], rcx
mov qword [rsp + 0x1e0], rsi
mov qword [rsp + 0x1e8], rdi
mov qword [rsp + 0x1f0], r10
mov qword [rsp + 0x210], rax
mov qword [rsp + 0x260], rax
mov qword [rsp + 0x2b0], rax
mov qword [rsp + 0x2c0], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x228], rbx
mov qword [rsp + 0x278], rbx
mov qword [rsp + 0x2d8], rbx
lea rbx, [rsp + 0x2e0]
mov qword [rsp + 0x1f8], r11
mov qword [rsp + 0x218], rdx
mov qword [rsp + 0x220], rcx
mov qword [rsp + 0x230], rsi
mov qword [rsp + 0x238], rdi
mov qword [rsp + 0x240], r10
mov qword [rsp + 0x248], r11
mov qword [rsp + 0x268], rdx
mov qword [rsp + 0x270], rcx
mov qword [rsp + 0x280], rsi
mov qword [rsp + 0x288], rdi
mov qword [rsp + 0x290], r10
mov qword [rsp + 0x298], r11
mov qword [rsp + 0x2b8], rdx
mov qword [rsp + 0x2c8], rdx
mov qword [rsp + 0x2d0], rcx
mov qword [rsp + 0x28], rax
mov r8, qword [r9 + 0x40]
mov r9, qword [r9 + 0x48]
mov qword [rsp + 0x200], r8
mov qword [rsp + 0x250], r8
mov qword [rsp + 0x208], r9
mov qword [rsp + 0x258], r9
mov qword [rsp + 0x2a0], r8
mov qword [rsp + 0x2a8], r9
jmp 0x54d879
dec r15d
je 0x54da7c
mov rax, qword [rsp + 0x28]
lea rdx, [r12 + r14]
mov r8, rbx
lea rcx, [rax + r14]
call fcn.0054c590
vmovdqu xmm0, xmmword [rsp + 0x2e0]
mov eax, dword [rsp + 0x2e0]
vpmovzxbw xmm1, xmm0
vpsrldq xmm0, xmm0, 8
vpmovzxbw xmm0, xmm0
vpmovzxwd xmm2, xmm1
vpsrldq xmm1, xmm1, 8
vpmovzxwd xmm1, xmm1
vpaddd xmm2, xmm2, xmm1
vpmovzxwd xmm1, xmm0
vpsrldq xmm0, xmm0, 8
vpmovzxwd xmm0, xmm0
vpaddd xmm1, xmm1, xmm2
vpaddd xmm0, xmm0, xmm1
vmovdqu xmm1, xmmword [rsp + 0x2f0]
vpmovzxbw xmm2, xmm1
vpsrldq xmm1, xmm1, 8
vpmovzxbw xmm1, xmm1
vpmovzxwd xmm3, xmm2
vpaddd xmm3, xmm3, xmm0
vpsrldq xmm0, xmm2, 8
vpmovzxwd xmm0, xmm0
vpmovzxwd xmm2, xmm1
vpaddd xmm0, xmm0, xmm3
vpaddd xmm2, xmm2, xmm0
vpsrldq xmm0, xmm1, 8
vpmovzxwd xmm0, xmm0
vpaddd xmm0, xmm0, xmm2
vpsrldq xmm1, xmm0, 8
vpaddd xmm0, xmm0, xmm1
vpsrldq xmm1, xmm0, 4
vpaddd xmm0, xmm0, xmm1
vmovd r10d, xmm0
movzx r14d, r10b
lea r9, [r12 + r14]
lea r13d, [r14 + 0x10]
mov rbp, r14
xor dword [r9], eax
lea eax, [r14 + 4]
add r13, r12
mov edx, dword [rsp + 0x2e4]
xor dword [r12 + rax], edx
lea eax, [r14 + 8]
mov edx, dword [rsp + 0x2e8]
xor dword [r12 + rax], edx
lea eax, [r14 + 0xc]
mov edx, dword [rsp + 0x2ec]
xor dword [r12 + rax], edx
mov eax, dword [rsp + 0x2f0]
xor dword [r13], eax
lea eax, [r14 + 0x14]
mov edx, dword [rsp + 0x2f4]
xor dword [r12 + rax], edx
lea eax, [r14 + 0x18]
mov edx, dword [rsp + 0x2f8]
xor dword [r12 + rax], edx
lea eax, [r14 + 0x1c]
mov edx, dword [rsp + 0x2fc]
xor dword [r12 + rax], edx
test r10b, 0xe0
jne 0x54d9dc
lea eax, [r14 + 0x100]
add rax, r12
cmp r14d, 0x20
jbe 0x54dc66
vmovdqu xmm4, xmmword [r9]
vmovdqu xmmword [rax], xmm4
vmovdqu xmm5, xmmword [r9 + 0x10]
vmovdqu xmmword [rax + 0x10], xmm5
mov esi, 0x100
sub esi, ebp
cmp esi, 0x1f
ja 0x54d870
lea edi, [rbp - 0xe0]
mov eax, edi
shr eax, 2
je 0x54da27
mov eax, eax
lea rdx, [rsp + 0x2c0]
mov rcx, r12
mov dword [rsp + 0x38], r10d
lea r8, [rax*4]
mov qword [rsp + 0x30], r9
call sub.msvcrt.dll_memmove
mov r9, qword [rsp + 0x30]
mov r10d, dword [rsp + 0x38]
mov eax, edi
and eax, 3
je 0x54d870
mov edx, edi
sub edx, eax
cmp edi, edx
jbe 0x54d870
sub eax, edi
lea r11, [rsp + rdx + 0x2c0]
lea rcx, [r12 + rdx]
mov dword [rsp + 0x38], r10d
lea eax, [rbp + rax - 0xe1]
mov rdx, r11
mov qword [rsp + 0x30], r9
lea r8, [rax + 1]
call sub.msvcrt.dll_memmove
dec r15d
mov r9, qword [rsp + 0x30]
mov r10d, dword [rsp + 0x38]
jne 0x54d879
mov ebx, r10d
cmp esi, 0x100
jne 0x54dd1f
vmovdqu xmm4, xmmword [rsp + 0x1c0]
vmovdqu xmm5, xmmword [rsp + 0x1d0]
mov r8d, 0x100
mov rdx, r12
vpxor xmm0, xmm4, xmmword [rsp + 0x80]
vmovdqu xmm4, xmmword [rsp + 0x1e0]
vmovdqu xmmword [rsp + 0x1c0], xmm0
vpxor xmm0, xmm5, xmmword [rsp + 0x90]
vmovdqu xmm5, xmmword [rsp + 0x1f0]
vmovdqu xmmword [rsp + 0x1d0], xmm0
vpxor xmm0, xmm4, xmmword [rsp + 0xa0]
vmovdqu xmm4, xmmword [rsp + 0x200]
vmovdqu xmmword [rsp + 0x1e0], xmm0
vpxor xmm0, xmm5, xmmword [rsp + 0xb0]
vmovdqu xmm5, xmmword [rsp + 0x210]
vmovdqu xmmword [rsp + 0x1f0], xmm0
vpxor xmm0, xmm4, xmmword [rsp + 0xc0]
vmovdqu xmm4, xmmword [rsp + 0x220]
vmovdqu xmmword [rsp + 0x200], xmm0
vpxor xmm0, xmm5, xmmword [rsp + 0xd0]
vmovdqu xmm5, xmmword [rsp + 0x230]
vmovdqu xmmword [rsp + 0x210], xmm0
vpxor xmm0, xmm4, xmmword [rsp + 0xe0]
vmovdqu xmm4, xmmword [rsp + 0x240]
vmovdqu xmmword [rsp + 0x220], xmm0
vpxor xmm0, xmm5, xmmword [rsp + 0xf0]
vmovdqu xmm5, xmmword [rsp + 0x250]
vmovdqu xmmword [rsp + 0x230], xmm0
vpxor xmm0, xmm4, xmmword [rsp + 0x100]
vmovdqu xmm4, xmmword [rsp + 0x260]
vmovdqu xmmword [rsp + 0x240], xmm0
vpxor xmm0, xmm5, xmmword [rsp + 0x110]
vmovdqu xmmword [rsp + 0x250], xmm0
vpxor xmm0, xmm4, xmmword [rsp + 0x120]
vmovdqu xmmword [rsp + 0x260], xmm0
vmovdqu xmm5, xmmword [rsp + 0x270]
vmovdqu xmm4, xmmword [rsp + 0x280]
vpxor xmm0, xmm5, xmmword [rsp + 0x130]
vmovdqu xmm5, xmmword [rsp + 0x290]
mov rcx, qword [rsp + 0x360]
vmovdqu xmmword [rsp + 0x270], xmm0
vpxor xmm0, xmm4, xmmword [rsp + 0x140]
vmovdqu xmm4, xmmword [rsp + 0x2a0]
vmovdqu xmmword [rsp + 0x280], xmm0
vpxor xmm0, xmm5, xmmword [rsp + 0x150]
vmovdqu xmm5, xmmword [rsp + 0x2b0]
vmovdqu xmmword [rsp + 0x290], xmm0
vpxor xmm0, xmm4, xmmword [rsp + 0x160]
vmovdqu xmmword [rsp + 0x2a0], xmm0
vpxor xmm0, xmm5, xmmword [rsp + 0x170]
vmovdqu xmmword [rsp + 0x2b0], xmm0
call sub.msvcrt.dll_memcpy
nop
add rsp, 0x308
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, 0x20
sub edx, r14d
mov r8d, edx
mov ecx, edx
and r8d, 3
shr ecx, 2
je 0x54e7c0
mov ecx, ecx
shl rcx, 2
cmp ecx, 8
jae 0x54dce5
test cl, 4
jne 0x54e81a
test ecx, ecx
jne 0x54dd14
test r8d, r8d
je 0x54d9dc
mov ecx, edx
sub ecx, r8d
cmp edx, ecx
jbe 0x54d9dc
lea r11, [rax + rcx]
mov eax, 0x1f
lea rdx, [r9 + rcx]
mov dword [rsp + 0x38], r10d
lea eax, [r8 + rax - 0x20]
mov rcx, r11
mov qword [rsp + 0x30], r9
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov r9, qword [rsp + 0x30]
mov r10d, dword [rsp + 0x38]
jmp 0x54d9dc
mov r11, qword [r9]
lea rdi, [rax + 8]
mov rsi, r9
and rdi, 0xfffffffffffffff8
mov qword [rax], r11
mov r11, qword [r9 + rcx - 8]
mov qword [rax + rcx - 8], r11
mov r11, rax
sub r11, rdi
add ecx, r11d
sub rsi, r11
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x54dc98
movzx ecx, byte [r9]
mov byte [rax], cl
jmp 0x54dc98
mov r14d, esi
shr r14d, 2
je 0x54df82
lea rdx, [rsp + 0x84]
mov rax, r9
sub rax, rdx
cmp rax, 8
jbe 0x54e7fb
cmp r14d, 1
je 0x54e7fb
lea eax, [r14 - 1]
cmp eax, 2
jbe 0x54e849
vmovdqu xmm4, xmmword [r9]
mov eax, esi
vpxor xmm0, xmm4, xmmword [rsp + 0x80]
shr eax, 4
vmovdqu xmmword [r9], xmm0
cmp eax, 1
je 0x54df2b
vmovdqu xmm5, xmmword [r13]
vpxor xmm0, xmm5, xmmword [rsp + 0x90]
vmovdqu xmmword [r13], xmm0
cmp eax, 2
je 0x54df2b
vmovdqu xmm4, xmmword [r13 + 0x10]
vpxor xmm0, xmm4, xmmword [rsp + 0xa0]
vmovdqu xmmword [r13 + 0x10], xmm0
cmp eax, 3
je 0x54df2b
vmovdqu xmm5, xmmword [r13 + 0x20]
vpxor xmm0, xmm5, xmmword [rsp + 0xb0]
vmovdqu xmmword [r13 + 0x20], xmm0
cmp eax, 4
je 0x54df2b
vmovdqu xmm4, xmmword [r13 + 0x30]
vpxor xmm0, xmm4, xmmword [rsp + 0xc0]
vmovdqu xmmword [r13 + 0x30], xmm0
cmp eax, 5
je 0x54df2b
vmovdqu xmm5, xmmword [r13 + 0x40]
vpxor xmm0, xmm5, xmmword [rsp + 0xd0]
vmovdqu xmmword [r13 + 0x40], xmm0
cmp eax, 6
je 0x54df2b
vmovdqu xmm4, xmmword [r13 + 0x50]
vpxor xmm0, xmm4, xmmword [rsp + 0xe0]
vmovdqu xmmword [r13 + 0x50], xmm0
cmp eax, 7
je 0x54df2b
vmovdqu xmm5, xmmword [r13 + 0x60]
vpxor xmm0, xmm5, xmmword [rsp + 0xf0]
vmovdqu xmmword [r13 + 0x60], xmm0
cmp eax, 8
je 0x54df2b
vmovdqu xmm4, xmmword [r13 + 0x70]
vpxor xmm0, xmm4, xmmword [rsp + 0x100]
vmovdqu xmmword [r13 + 0x70], xmm0
cmp eax, 9
je 0x54df2b
vmovdqu xmm5, xmmword [r13 + 0x80]
vpxor xmm0, xmm5, xmmword [rsp + 0x110]
vmovdqu xmmword [r13 + 0x80], xmm0
cmp eax, 0xa
je 0x54df2b
vmovdqu xmm4, xmmword [r13 + 0x90]
vpxor xmm0, xmm4, xmmword [rsp + 0x120]
vmovdqu xmmword [r13 + 0x90], xmm0
cmp eax, 0xb
je 0x54df2b
vmovdqu xmm5, xmmword [r13 + 0xa0]
vpxor xmm0, xmm5, xmmword [rsp + 0x130]
vmovdqu xmmword [r13 + 0xa0], xmm0
cmp eax, 0xc
je 0x54df2b
vmovdqu xmm4, xmmword [r13 + 0xb0]
vpxor xmm0, xmm4, xmmword [rsp + 0x140]
vmovdqu xmmword [r13 + 0xb0], xmm0
cmp eax, 0xd
je 0x54df2b
vmovdqu xmm5, xmmword [r13 + 0xc0]
vpxor xmm0, xmm5, xmmword [rsp + 0x150]
vmovdqu xmmword [r13 + 0xc0], xmm0
cmp eax, 0xf
jne 0x54df2b
vmovdqu xmm4, xmmword [r13 + 0xd0]
vpxor xmm0, xmm4, xmmword [rsp + 0x160]
vmovdqu xmmword [r13 + 0xd0], xmm0
shl eax, 2
lea rdx, [rsp + 0x40]
cmp r14d, eax
je 0x54df87
mov ecx, r14d
sub ecx, eax
cmp ecx, 1
je 0x54df73
lea r8d, [rax + 0x10]
mov edx, eax
lea rdx, [r9 + rdx*4]
vmovq xmm1, qword [rsp + r8*4 + 0x40]
mov r8d, ecx
vmovq xmm0, qword [rdx]
and r8d, 0xfffffffe
vpxor xmm0, xmm0, xmm1
vmovq qword [rdx], xmm0
add eax, r8d
lea rdx, [rsp + 0x40]
cmp r8d, ecx
je 0x54df87
shl rax, 2
mov edx, dword [rsp + rax + 0x80]
xor dword [r9 + rax], edx
lea rdx, [rsp + 0x40]
mov eax, esi
and eax, 3
mov dword [rsp + 0x30], eax
je 0x54e20a
mov ecx, esi
sub ecx, eax
cmp ecx, esi
jae 0x54e20a
mov r8d, ecx
lea edi, [rax - 1]
lea rax, [r9 + r8]
lea r13, [rdx + r8 + 0x41]
mov r10, r8
mov r11, rax
sub r11, r13
cmp r11, 0xe
jbe 0x54e779
cmp edi, 6
jbe 0x54e779
cmp edi, 0xe
jbe 0x54e11a
lea r10, [rdx + r8 + 0x40]
vmovdqu xmm5, xmmword [rax]
vmovdqu xmm4, xmmword [rax + 0x10]
vpxor xmm0, xmm5, xmmword [r10]
vmovdqu xmm5, xmmword [rax + 0x20]
vmovdqu xmmword [rax], xmm0
vpxor xmm0, xmm4, xmmword [r10 + 0x10]
vmovdqu xmm4, xmmword [rax + 0x30]
vmovdqu xmmword [rax + 0x10], xmm0
vpxor xmm0, xmm5, xmmword [r10 + 0x20]
vmovdqu xmm5, xmmword [rax + 0x40]
vmovdqu xmmword [rax + 0x20], xmm0
vpxor xmm0, xmm4, xmmword [r10 + 0x30]
vmovdqu xmm4, xmmword [rax + 0x50]
vmovdqu xmmword [rax + 0x30], xmm0
vpxor xmm0, xmm5, xmmword [r10 + 0x40]
vmovdqu xmm5, xmmword [rax + 0x60]
vmovdqu xmmword [rax + 0x40], xmm0
vpxor xmm0, xmm4, xmmword [r10 + 0x50]
vmovdqu xmm4, xmmword [rax + 0x70]
vmovdqu xmmword [rax + 0x50], xmm0
vpxor xmm0, xmm5, xmmword [r10 + 0x60]
vmovdqu xmm5, xmmword [rax + 0x80]
vmovdqu xmmword [rax + 0x60], xmm0
vpxor xmm0, xmm4, xmmword [r10 + 0x70]
vmovdqu xmm4, xmmword [rax + 0x90]
vmovdqu xmmword [rax + 0x70], xmm0
vpxor xmm0, xmm5, xmmword [r10 + 0x80]
vmovdqu xmm5, xmmword [rax + 0xa0]
vmovdqu xmmword [rax + 0x80], xmm0
vpxor xmm0, xmm4, xmmword [r10 + 0x90]
vmovdqu xmmword [rax + 0x90], xmm0
vpxor xmm0, xmm5, xmmword [r10 + 0xa0]
vmovdqu xmmword [rax + 0xa0], xmm0
vmovdqu xmm4, xmmword [rax + 0xb0]
vmovdqu xmm5, xmmword [rax + 0xc0]
vpxor xmm0, xmm4, xmmword [r10 + 0xb0]
vmovdqu xmm4, xmmword [rax + 0xd0]
mov r11d, dword [rsp + 0x30]
vmovdqu xmmword [rax + 0xb0], xmm0
vpxor xmm0, xmm5, xmmword [r10 + 0xc0]
vmovdqu xmmword [rax + 0xc0], xmm0
vpxor xmm0, xmm4, xmmword [r10 + 0xd0]
vmovdqu xmmword [rax + 0xd0], xmm0
vmovdqu xmm5, xmmword [r10 + 0xe0]
vpxor xmm0, xmm5, xmmword [rax + 0xe0]
vmovdqu xmmword [rax + 0xe0], xmm0
test r11d, r11d
je 0x54e20a
cmp edi, 6
jbe 0x54e13e
mov r10d, dword [rsp + 0x30]
vmovq xmm0, qword [rsp + r8 + 0x80]
vmovq xmm1, qword [rax]
vpxor xmm0, xmm0, xmm1
vmovq qword [rax], xmm0
test r10d, r10d
je 0x54e20a
lea r10, [r9 + r8]
movzx eax, byte [rsp + r8 + 0x80]
movzx r8d, byte [r10]
xor eax, r8d
mov byte [r10], al
lea eax, [rcx + 1]
cmp esi, eax
jbe 0x54e20a
lea r8, [r9 + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r10d, byte [r8]
xor eax, r10d
mov byte [r8], al
lea eax, [rcx + 2]
cmp esi, eax
jbe 0x54e20a
lea r8, [r9 + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r10d, byte [r8]
xor eax, r10d
mov byte [r8], al
lea eax, [rcx + 3]
cmp esi, eax
jbe 0x54e20a
lea r8, [r9 + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r10d, byte [r8]
xor eax, r10d
mov byte [r8], al
lea eax, [rcx + 4]
cmp esi, eax
jbe 0x54e20a
lea r8, [r9 + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r10d, byte [r8]
xor eax, r10d
mov byte [r8], al
lea eax, [rcx + 5]
cmp esi, eax
jbe 0x54e20a
lea r8, [r9 + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r10d, byte [r8]
xor eax, r10d
mov byte [r8], al
lea eax, [rcx + 6]
cmp esi, eax
jbe 0x54e20a
lea rcx, [r9 + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r8d, byte [rcx]
xor eax, r8d
mov byte [rcx], al
mov r8, qword [rsp + 0x28]
mov eax, esi
mov r13d, ebp
mov qword [rsp + 0x38], rax
add r8, rax
shr r13d, 2
je 0x54e485
cmp r13d, 1
je 0x54e7d5
lea eax, [r13 - 1]
cmp eax, 2
jbe 0x54e841
lea eax, [rsi + 0x40]
mov ecx, ebp
add rax, rdx
shr ecx, 4
vmovdqu xmm4, xmmword [rax]
vpxor xmm0, xmm4, xmmword [rsp + 0x1c0]
vmovdqu xmmword [rsp + 0x1c0], xmm0
cmp ecx, 1
je 0x54e423
vmovdqu xmm5, xmmword [rax + 0x10]
vpxor xmm0, xmm5, xmmword [rsp + 0x1d0]
vmovdqu xmmword [rsp + 0x1d0], xmm0
cmp ecx, 2
je 0x54e423
vmovdqu xmm4, xmmword [rax + 0x20]
vpxor xmm0, xmm4, xmmword [rsp + 0x1e0]
vmovdqu xmmword [rsp + 0x1e0], xmm0
cmp ecx, 3
je 0x54e423
vmovdqu xmm5, xmmword [rax + 0x30]
vpxor xmm0, xmm5, xmmword [rsp + 0x1f0]
vmovdqu xmmword [rsp + 0x1f0], xmm0
cmp ecx, 4
je 0x54e423
vmovdqu xmm4, xmmword [rax + 0x40]
vpxor xmm0, xmm4, xmmword [rsp + 0x200]
vmovdqu xmmword [rsp + 0x200], xmm0
cmp ecx, 5
je 0x54e423
vmovdqu xmm5, xmmword [rax + 0x50]
vpxor xmm0, xmm5, xmmword [rsp + 0x210]
vmovdqu xmmword [rsp + 0x210], xmm0
cmp ecx, 6
je 0x54e423
vmovdqu xmm4, xmmword [rax + 0x60]
vpxor xmm0, xmm4, xmmword [rsp + 0x220]
vmovdqu xmmword [rsp + 0x220], xmm0
cmp ecx, 7
je 0x54e423
vmovdqu xmm5, xmmword [rax + 0x70]
vpxor xmm0, xmm5, xmmword [rsp + 0x230]
vmovdqu xmmword [rsp + 0x230], xmm0
cmp ecx, 8
je 0x54e423
vmovdqu xmm4, xmmword [rax + 0x80]
vpxor xmm0, xmm4, xmmword [rsp + 0x240]
vmovdqu xmmword [rsp + 0x240], xmm0
cmp ecx, 9
je 0x54e423
vmovdqu xmm5, xmmword [rax + 0x90]
vpxor xmm0, xmm5, xmmword [rsp + 0x250]
vmovdqu xmmword [rsp + 0x250], xmm0
cmp ecx, 0xa
je 0x54e423
vmovdqu xmm4, xmmword [rax + 0xa0]
vpxor xmm0, xmm4, xmmword [rsp + 0x260]
vmovdqu xmmword [rsp + 0x260], xmm0
cmp ecx, 0xb
je 0x54e423
vmovdqu xmm5, xmmword [rax + 0xb0]
vpxor xmm0, xmm5, xmmword [rsp + 0x270]
vmovdqu xmmword [rsp + 0x270], xmm0
cmp ecx, 0xc
je 0x54e423
vmovdqu xmm4, xmmword [rax + 0xc0]
vpxor xmm0, xmm4, xmmword [rsp + 0x280]
vmovdqu xmmword [rsp + 0x280], xmm0
cmp ecx, 0xd
je 0x54e423
vmovdqu xmm5, xmmword [rax + 0xd0]
vpxor xmm0, xmm5, xmmword [rsp + 0x290]
vmovdqu xmmword [rsp + 0x290], xmm0
cmp ecx, 0xf
jne 0x54e423
vmovdqu xmm0, xmmword [rax + 0xe0]
vpxor xmm0, xmm0, xmmword [rsp + 0x2a0]
vmovdqu xmmword [rsp + 0x2a0], xmm0
lea r15d, [rcx*4]
cmp r13d, r15d
je 0x54e485
mov eax, r13d
sub eax, r15d
cmp eax, 1
je 0x54e476
mov rdi, qword [rsp + 0x38]
lea ecx, [r15 + 0x60]
lea r10d, [r15 + 0x10]
lea rcx, [rdx + rcx*4]
lea r10, [rsp + r10*4 + 0x300]
vmovq xmm0, qword [rcx]
vmovq xmm1, qword [rdi + r10 - 0x2c0]
vpxor xmm0, xmm0, xmm1
vmovq qword [rcx], xmm0
mov ecx, eax
and ecx, 0xfffffffe
add r15d, ecx
cmp eax, ecx
je 0x54e485
mov eax, r15d
shl rax, 2
mov ecx, dword [r8 + rax]
xor dword [r12 + rax], ecx
and ebx, 3
je 0x54e6d7
mov r10d, ebp
sub r10d, ebx
cmp ebp, r10d
jbe 0x54e6d7
lea eax, [rbx - 1]
mov r11d, r10d
mov edi, eax
mov dword [rsp + 0x28], eax
mov rax, r11
cmp edi, 6
jbe 0x54e79b
cmp edi, 0xe
jbe 0x54e82f
lea rax, [r11 + 0x180]
lea ecx, [rsi + 0x40]
mov r15, rax
mov rdi, rcx
lea rax, [rdx + r11 + 0x180]
add rcx, r11
add rcx, rdx
vmovdqu xmm4, xmmword [rax]
vmovdqu xmm5, xmmword [rax + 0x10]
vpxor xmm0, xmm4, xmmword [rcx]
vmovdqu xmm4, xmmword [rax + 0x20]
vmovdqu xmmword [rax], xmm0
vpxor xmm0, xmm5, xmmword [rcx + 0x10]
vmovdqu xmm5, xmmword [rax + 0x30]
vmovdqu xmmword [rax + 0x10], xmm0
vpxor xmm0, xmm4, xmmword [rcx + 0x20]
vmovdqu xmm4, xmmword [rax + 0x40]
vmovdqu xmmword [rax + 0x20], xmm0
vpxor xmm0, xmm5, xmmword [rcx + 0x30]
vmovdqu xmm5, xmmword [rax + 0x50]
vmovdqu xmmword [rax + 0x30], xmm0
vpxor xmm0, xmm4, xmmword [rcx + 0x40]
vmovdqu xmm4, xmmword [rax + 0x60]
vmovdqu xmmword [rax + 0x40], xmm0
vpxor xmm0, xmm5, xmmword [rcx + 0x50]
vmovdqu xmm5, xmmword [rax + 0x70]
vmovdqu xmmword [rax + 0x50], xmm0
vpxor xmm0, xmm4, xmmword [rcx + 0x60]
vmovdqu xmm4, xmmword [rax + 0x80]
vmovdqu xmmword [rax + 0x60], xmm0
vpxor xmm0, xmm5, xmmword [rcx + 0x70]
vmovdqu xmm5, xmmword [rax + 0x90]
vmovdqu xmmword [rax + 0x70], xmm0
vpxor xmm0, xmm4, xmmword [rcx + 0x80]
vmovdqu xmm4, xmmword [rax + 0xa0]
vmovdqu xmmword [rax + 0x80], xmm0
vpxor xmm0, xmm5, xmmword [rcx + 0x90]
vmovdqu xmmword [rax + 0x90], xmm0
vpxor xmm0, xmm4, xmmword [rcx + 0xa0]
vmovdqu xmmword [rax + 0xa0], xmm0
vmovdqu xmm5, xmmword [rax + 0xb0]
vmovdqu xmm4, xmmword [rax + 0xc0]
vpxor xmm0, xmm5, xmmword [rcx + 0xb0]
vmovdqu xmm5, xmmword [rax + 0xd0]
vmovdqu xmmword [rax + 0xb0], xmm0
vpxor xmm0, xmm4, xmmword [rcx + 0xc0]
vmovdqu xmmword [rax + 0xc0], xmm0
vpxor xmm0, xmm5, xmmword [rcx + 0xd0]
vmovdqu xmmword [rax + 0xd0], xmm0
vmovdqu xmm0, xmmword [rcx + 0xe0]
vpxor xmm0, xmm0, xmmword [rax + 0xe0]
vmovdqu xmmword [rax + 0xe0], xmm0
test ebx, ebx
je 0x54e6d7
cmp dword [rsp + 0x28], 6
jbe 0x54e633
lea rax, [rsp + 0x300]
add rdx, r15
add rax, r11
vmovq xmm1, qword [rdx]
vmovq xmm0, qword [rdi + rax - 0x2c0]
vpxor xmm0, xmm0, xmm1
vmovq qword [rdx], xmm0
test ebx, ebx
je 0x54e6d7
lea rdx, [r12 + r11]
movzx eax, byte [r8 + r11]
movzx ecx, byte [rdx]
xor eax, ecx
mov byte [rdx], al
lea eax, [r10 + 1]
cmp ebp, eax
jbe 0x54e6d7
lea rdx, [r12 + rax]
movzx eax, byte [r8 + rax]
movzx ecx, byte [rdx]
xor eax, ecx
mov byte [rdx], al
lea eax, [r10 + 2]
cmp ebp, eax
jbe 0x54e6d7
lea rdx, [r12 + rax]
movzx eax, byte [r8 + rax]
movzx ecx, byte [rdx]
xor eax, ecx
mov byte [rdx], al
lea eax, [r10 + 3]
cmp ebp, eax
jbe 0x54e6d7
lea rdx, [r12 + rax]
movzx eax, byte [r8 + rax]
movzx ecx, byte [rdx]
xor eax, ecx
mov byte [rdx], al
lea eax, [r10 + 4]
cmp ebp, eax
jbe 0x54e6d7
lea rdx, [r12 + rax]
movzx eax, byte [r8 + rax]
movzx ecx, byte [rdx]
xor eax, ecx
mov byte [rdx], al
lea eax, [r10 + 5]
cmp ebp, eax
jbe 0x54e6d7
lea rdx, [r12 + rax]
movzx eax, byte [r8 + rax]
movzx ecx, byte [rdx]
xor eax, ecx
mov byte [rdx], al
lea eax, [r10 + 6]
cmp ebp, eax
jbe 0x54e6d7
lea rdx, [r12 + rax]
movzx eax, byte [r8 + rax]
movzx ecx, byte [rdx]
xor eax, ecx
mov byte [rdx], al
test r14d, r14d
je 0x54e6fd
mov rcx, qword [rsp + 0x360]
mov r8d, r14d
mov rdx, r9
mov qword [rsp + 0x28], r9
shl r8, 2
call sub.msvcrt.dll_memcpy
mov r9, qword [rsp + 0x28]
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x54e72a
mov eax, dword [rsp + 0x30]
mov edx, esi
sub edx, eax
cmp edx, esi
jae 0x54e72a
mov rcx, qword [rsp + 0x360]
dec eax
lea r8, [rax + 1]
add rcx, rdx
add rdx, r9
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x38]
add rcx, qword [rsp + 0x360]
test r13d, r13d
je 0x54e74e
mov r8d, r13d
mov rdx, r12
shl r8, 2
call sub.msvcrt.dll_memcpy
mov rcx, rax
test ebx, ebx
je 0x54dc52
mov edx, ebp
sub edx, ebx
cmp ebp, edx
jbe 0x54dc52
lea eax, [rbx - 1]
add rcx, rdx
add rdx, r12
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
jmp 0x54dc52
mov rax, qword [rsp + 0x28]
movzx ecx, byte [r9 + r10]
movzx eax, byte [rax + r10]
xor eax, ecx
mov byte [r9 + r10], al
inc r10
cmp esi, r10d
ja 0x54e779
jmp 0x54e20a
lea rcx, [r12 + rax]
movzx edx, byte [r8 + rax]
inc rax
movzx r10d, byte [rcx]
xor edx, r10d
mov byte [rcx], dl
cmp ebp, eax
ja 0x54e79b
jmp 0x54e6d7
test r8d, r8d
jne 0x54dca1
mov esi, 0x100
sub esi, ebp
jmp 0x54d870
mov rax, r12
mov rcx, r8
lea r10, [rsp + 0x1c4]
mov r11d, dword [rcx]
xor dword [rax], r11d
add rax, 4
add rcx, 4
cmp r10, rax
jne 0x54e7e3
jmp 0x54e485
mov r8d, r14d
xor eax, eax
lea rdx, [rsp + 0x40]
mov ecx, dword [rdx + rax*4 + 0x40]
xor dword [r9 + rax*4], ecx
inc rax
cmp r8, rax
jne 0x54e805
jmp 0x54df87
mov r11d, dword [r9]
mov dword [rax], r11d
mov r11d, dword [r9 + rcx - 4]
mov dword [rax + rcx - 4], r11d
jmp 0x54dc98
lea rax, [r11 + 0x180]
lea edi, [rsi + 0x40]
mov r15, rax
jmp 0x54e608
mov eax, r13d
jmp 0x54e43b
mov ecx, r14d
xor eax, eax
jmp 0x54df42