Function at 0x570010
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 r14d, 0x20
mov r10, qword [rcx]
mov r9, qword [rcx + 0x18]
mov r11, qword [rcx + 8]
mov rdi, rcx
mov rsi, rdx
mov qword [rsp + 0x360], r8
mov r8, qword [rcx + 0x10]
mov rbx, qword [rdi + 0x28]
mov qword [rsp + 0x80], r10
mov qword [rsp + 0x88], r11
lea r15, [rsp + 0x1c0]
mov qword [rsp + 0x98], r9
mov qword [rsp + 0xd0], r10
mov qword [rsp + 0xd8], r11
mov qword [rsp + 0xe8], r9
mov qword [rsp + 0x90], r8
mov qword [rsp + 0xe0], r8
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xf8], rbx
mov qword [rsp + 0x120], r10
mov rcx, qword [rcx + 0x20]
mov rax, qword [rdi + 0x30]
mov rdx, qword [rdi + 0x38]
mov r12, qword [rdi + 0x40]
mov r13, qword [rdi + 0x48]
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xc0], r12
mov qword [rsp + 0xc8], r13
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rdx
mov qword [rsp + 0x110], r12
mov qword [rsp + 0x118], r13
mov qword [rsp + 0x128], r11
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x148], rbx
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], rdx
mov qword [rsp + 0x160], r12
mov qword [rsp + 0x168], r13
mov qword [rsp + 0x180], r10
mov qword [rsp + 0x1a0], rcx
mov qword [rsp + 0x1a8], rbx
mov qword [rsp + 0x1b0], rax
mov qword [rsp + 0x1b8], rdx
mov qword [rsp + 0x130], r8
mov qword [rsp + 0x138], r9
mov qword [rsp + 0x188], r11
mov qword [rsp + 0x190], r8
mov qword [rsp + 0x198], r9
vmovups xmm4, xmmword [rdi]
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsi]
mov rbx, qword [rsi + 8]
mov rdx, qword [rsi + 0x18]
mov r12, qword [rsi + 0x20]
mov r13, qword [rsi + 0x28]
mov r10, qword [rsi + 0x30]
mov r11, qword [rsi + 0x38]
mov qword [rsp + 0x1d0], rax
mov qword [rsp + 0x1c0], rcx
mov qword [rsp + 0x1c8], rbx
mov qword [rsp + 0x1d8], rdx
mov qword [rsp + 0x1e0], r12
mov qword [rsp + 0x1e8], r13
vmovups xmmword [rsp + 0x170], xmm4
mov qword [rsp + 0x1f0], r10
mov qword [rsp + 0x220], rax
mov qword [rsp + 0x270], rax
mov qword [rsp + 0x2d0], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x230], r12
mov qword [rsp + 0x238], r13
mov qword [rsp + 0x280], r12
xor r12d, r12d
mov qword [rsp + 0x288], r13
mov qword [rsp + 0x1f8], r11
lea r13, [rsp + 0x2e0]
mov qword [rsp + 0x210], rcx
mov qword [rsp + 0x218], rbx
mov qword [rsp + 0x228], rdx
mov qword [rsp + 0x240], r10
mov qword [rsp + 0x248], r11
mov qword [rsp + 0x260], rcx
mov qword [rsp + 0x268], rbx
mov qword [rsp + 0x278], rdx
mov qword [rsp + 0x290], r10
mov qword [rsp + 0x298], r11
mov qword [rsp + 0x2c0], rcx
mov qword [rsp + 0x2c8], rbx
mov qword [rsp + 0x2d8], rdx
mov qword [rsp + 0x20], rax
vmovups xmm5, xmmword [rsi]
mov r8, qword [rsi + 0x40]
mov r9, qword [rsi + 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
vmovups xmmword [rsp + 0x2b0], xmm5
jmp 0x570319
dec r14d
je 0x5704df
mov rax, qword [rsp + 0x20]
lea rdx, [r15 + r12]
mov r8, r13
lea rcx, [rax + r12]
call fcn.0056f020
vmovups 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
vmovups 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 ebx, xmm0
movzx r12d, bl
lea rbp, [r15 + r12]
mov r9, r12
xor dword [rbp], eax
mov eax, dword [rsp + 0x2e4]
xor dword [rbp + 4], eax
mov eax, dword [rsp + 0x2e8]
xor dword [rbp + 8], eax
mov eax, dword [rsp + 0x2ec]
xor dword [rbp + 0xc], eax
mov eax, dword [rsp + 0x2f0]
xor dword [rbp + 0x10], eax
mov eax, dword [rsp + 0x2f4]
xor dword [rbp + 0x14], eax
mov eax, dword [rsp + 0x2f8]
xor dword [rbp + 0x18], eax
mov eax, dword [rsp + 0x2fc]
xor dword [rbp + 0x1c], eax
test bl, 0xe0
jne 0x570454
lea eax, [r12 + 0x100]
add rax, r15
cmp r12d, 0x20
jbe 0x570701
vmovups xmm4, xmmword [rbp]
vmovups xmmword [rax], xmm4
vmovups xmm5, xmmword [rbp + 0x10]
vmovups xmmword [rax + 0x10], xmm5
mov edi, 0x100
sub edi, r9d
cmp edi, 0x1f
ja 0x570310
lea esi, [r9 - 0xe0]
mov eax, esi
shr eax, 2
je 0x570497
dec eax
lea rdx, [rsp + 0x2c0]
mov rcx, r15
mov dword [rsp + 0x28], r9d
lea r8, [rax*4 + 4]
call sub.msvcrt.dll_memmove
mov r9d, dword [rsp + 0x28]
mov edx, esi
and edx, 3
je 0x570310
mov eax, esi
sub eax, edx
cmp esi, eax
jbe 0x570310
sub edx, esi
lea rcx, [r15 + rax]
mov dword [rsp + 0x28], r9d
lea r8d, [r9 + rdx - 0xe1]
lea rdx, [rsp + rax + 0x2c0]
inc r8
call sub.msvcrt.dll_memmove
dec r14d
mov r9d, dword [rsp + 0x28]
jne 0x570319
mov r13d, r9d
mov r10d, edi
cmp edi, 0x100
jne 0x5707e0
vmovups xmm4, xmmword [rsp + 0x1c0]
vmovups xmm5, xmmword [rsp + 0x1d0]
mov rsi, r15
vxorps xmm0, xmm4, xmmword [rsp + 0x80]
vmovups xmm4, xmmword [rsp + 0x1e0]
vmovq rax, xmm0
vmovups xmmword [rsp + 0x1c0], xmm0
vxorps xmm0, xmm5, xmmword [rsp + 0x90]
vmovups xmm5, xmmword [rsp + 0x1f0]
vmovups xmmword [rsp + 0x1d0], xmm0
vxorps xmm0, xmm4, xmmword [rsp + 0xa0]
vmovups xmm4, xmmword [rsp + 0x200]
vmovups xmmword [rsp + 0x1e0], xmm0
vxorps xmm0, xmm5, xmmword [rsp + 0xb0]
vmovups xmm5, xmmword [rsp + 0x210]
vmovups xmmword [rsp + 0x1f0], xmm0
vxorps xmm0, xmm4, xmmword [rsp + 0xc0]
vmovups xmm4, xmmword [rsp + 0x220]
vmovups xmmword [rsp + 0x200], xmm0
vxorps xmm0, xmm5, xmmword [rsp + 0xd0]
vmovups xmm5, xmmword [rsp + 0x230]
vmovups xmmword [rsp + 0x210], xmm0
vxorps xmm0, xmm4, xmmword [rsp + 0xe0]
vmovups xmm4, xmmword [rsp + 0x240]
vmovups xmmword [rsp + 0x220], xmm0
vxorps xmm0, xmm5, xmmword [rsp + 0xf0]
vmovups xmm5, xmmword [rsp + 0x250]
vmovups xmmword [rsp + 0x230], xmm0
vxorps xmm0, xmm4, xmmword [rsp + 0x100]
vmovups xmm4, xmmword [rsp + 0x260]
vmovups xmmword [rsp + 0x240], xmm0
vxorps xmm0, xmm5, xmmword [rsp + 0x110]
vmovups xmmword [rsp + 0x250], xmm0
vxorps xmm0, xmm4, xmmword [rsp + 0x120]
vmovups xmmword [rsp + 0x260], xmm0
vmovups xmm5, xmmword [rsp + 0x270]
vmovups xmm4, xmmword [rsp + 0x280]
vxorps xmm0, xmm5, xmmword [rsp + 0x130]
vmovups xmm5, xmmword [rsp + 0x290]
mov rbx, qword [rsp + 0x360]
vmovups xmmword [rsp + 0x270], xmm0
vxorps xmm0, xmm4, xmmword [rsp + 0x140]
vmovups xmm4, xmmword [rsp + 0x2a0]
vmovups xmmword [rsp + 0x280], xmm0
vxorps xmm0, xmm5, xmmword [rsp + 0x150]
vmovups xmm5, xmmword [rsp + 0x2b0]
vmovups xmmword [rsp + 0x290], xmm0
vxorps xmm0, xmm4, xmmword [rsp + 0x160]
vmovups xmmword [rsp + 0x2a0], xmm0
vxorps xmm0, xmm5, xmmword [rsp + 0x170]
vmovups xmmword [rsp + 0x2b0], xmm0
mov qword [rbx], rax
mov rax, qword [rsp + 0x2b8]
mov rbx, qword [rsp + 0x360]
mov qword [rbx + 0xf8], rax
mov rax, qword [rsp + 0x360]
lea rdi, [rax + 8]
and rdi, 0xfffffffffffffff8
sub rax, rdi
lea ecx, [rax + 0x100]
sub rsi, rax
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
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, r12d
mov r8d, edx
mov ecx, edx
and r8d, 3
shr ecx, 2
je 0x571450
dec ecx
lea r10, [rcx*4 + 4]
mov ecx, r10d
cmp r10d, 8
jae 0x570780
and r10d, 4
jne 0x57154f
test ecx, ecx
jne 0x5707b3
test r8d, r8d
je 0x570454
mov ecx, edx
sub ecx, r8d
cmp edx, ecx
jbe 0x570454
lea r10, [rax + rcx]
mov eax, 0x1f
lea rdx, [rbp + rcx]
mov dword [rsp + 0x28], r9d
lea eax, [r8 + rax - 0x20]
mov rcx, r10
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov r9d, dword [rsp + 0x28]
jmp 0x570454
mov rcx, qword [rbp]
lea rdi, [rax + 8]
mov rsi, rbp
and rdi, 0xfffffffffffffff8
mov qword [rax], rcx
mov ecx, r10d
mov r11, qword [rbp + rcx - 8]
mov qword [rax + rcx - 8], r11
mov rcx, rax
sub rcx, rdi
sub rsi, rcx
add ecx, r10d
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x57073c
movzx r10d, byte [rbp]
mov byte [rax], r10b
test cl, 2
je 0x57073c
movzx r10d, word [rbp + rcx - 2]
mov word [rax + rcx - 2], r10w
jmp 0x57073c
shr edi, 2
lea rdx, [rsp + 0x40]
je 0x570a26
lea rax, [rbp + 0x10]
cmp qword [rsp + 0x20], rax
lea rdx, [rsp + 0x90]
lea ecx, [rdi - 1]
setae al
cmp rbp, rdx
setae dl
or eax, edx
test al, 1
je 0x57152e
cmp ecx, 2
jbe 0x57152e
vmovups xmm4, xmmword [rbp]
mov eax, r10d
vxorps xmm0, xmm4, xmmword [rsp + 0x80]
shr eax, 4
vmovups xmmword [rbp], xmm0
cmp eax, 1
je 0x5709d9
vmovups xmm5, xmmword [rbp + 0x10]
vxorps xmm0, xmm5, xmmword [rsp + 0x90]
vmovups xmmword [rbp + 0x10], xmm0
cmp eax, 2
je 0x5709d9
vmovups xmm4, xmmword [rbp + 0x20]
vxorps xmm0, xmm4, xmmword [rsp + 0xa0]
vmovups xmmword [rbp + 0x20], xmm0
cmp eax, 3
je 0x5709d9
vmovups xmm5, xmmword [rbp + 0x30]
vxorps xmm0, xmm5, xmmword [rsp + 0xb0]
vmovups xmmword [rbp + 0x30], xmm0
cmp eax, 4
je 0x5709d9
vmovups xmm4, xmmword [rbp + 0x40]
vxorps xmm0, xmm4, xmmword [rsp + 0xc0]
vmovups xmmword [rbp + 0x40], xmm0
cmp eax, 5
je 0x5709d9
vmovups xmm5, xmmword [rbp + 0x50]
vxorps xmm0, xmm5, xmmword [rsp + 0xd0]
vmovups xmmword [rbp + 0x50], xmm0
cmp eax, 6
je 0x5709d9
vmovups xmm4, xmmword [rbp + 0x60]
vxorps xmm0, xmm4, xmmword [rsp + 0xe0]
vmovups xmmword [rbp + 0x60], xmm0
cmp eax, 7
je 0x5709d9
vmovups xmm5, xmmword [rbp + 0x70]
vxorps xmm0, xmm5, xmmword [rsp + 0xf0]
vmovups xmmword [rbp + 0x70], xmm0
cmp eax, 8
je 0x5709d9
vmovups xmm4, xmmword [rbp + 0x80]
vxorps xmm0, xmm4, xmmword [rsp + 0x100]
vmovups xmmword [rbp + 0x80], xmm0
cmp eax, 9
je 0x5709d9
vmovups xmm5, xmmword [rbp + 0x90]
vxorps xmm0, xmm5, xmmword [rsp + 0x110]
vmovups xmmword [rbp + 0x90], xmm0
cmp eax, 0xa
je 0x5709d9
vmovups xmm4, xmmword [rbp + 0xa0]
vxorps xmm0, xmm4, xmmword [rsp + 0x120]
vmovups xmmword [rbp + 0xa0], xmm0
cmp eax, 0xb
je 0x5709d9
vmovups xmm5, xmmword [rbp + 0xb0]
vxorps xmm0, xmm5, xmmword [rsp + 0x130]
vmovups xmmword [rbp + 0xb0], xmm0
cmp eax, 0xc
je 0x5709d9
vmovups xmm4, xmmword [rbp + 0xc0]
vxorps xmm0, xmm4, xmmword [rsp + 0x140]
vmovups xmmword [rbp + 0xc0], xmm0
cmp eax, 0xd
je 0x5709d9
vmovups xmm5, xmmword [rbp + 0xd0]
vxorps xmm0, xmm5, xmmword [rsp + 0x150]
vmovups xmmword [rbp + 0xd0], xmm0
cmp eax, 0xf
jne 0x5709d9
vmovups xmm4, xmmword [rbp + 0xe0]
vxorps xmm0, xmm4, xmmword [rsp + 0x160]
vmovups xmmword [rbp + 0xe0], xmm0
shl eax, 2
lea rdx, [rsp + 0x40]
cmp edi, eax
je 0x570a26
mov ecx, eax
shl rcx, 2
mov r8d, dword [rsp + rcx + 0x80]
xor dword [rbp + rcx], r8d
lea ecx, [rax + 1]
cmp edi, ecx
jbe 0x570a26
shl rcx, 2
add eax, 2
mov r8d, dword [rsp + rcx + 0x80]
xor dword [rbp + rcx], r8d
cmp edi, eax
jbe 0x570a26
shl rax, 2
mov ecx, dword [rsp + rax + 0x80]
xor dword [rbp + rax], ecx
mov r9d, r10d
and r9d, 3
je 0x570da9
mov ecx, r10d
sub ecx, r9d
cmp r10d, ecx
jbe 0x570da9
mov r11d, ecx
lea r12, [rbp + r11 + 0x10]
lea r8, [rdx + r11 + 0x40]
lea r14, [rdx + r11 + 0x50]
lea rax, [rbp + r11]
cmp r8, r12
mov rsi, r11
setae r12b
cmp rax, r14
setae r14b
or r12d, r14d
and r12d, 1
je 0x57142b
lea r12d, [r9 - 1]
cmp r12d, 0xe
jbe 0x57142b
vmovups xmm5, xmmword [rax]
vmovups xmm4, xmmword [rax + 0x10]
vxorps xmm0, xmm5, xmmword [r8]
vmovups xmm5, xmmword [rax + 0x20]
vmovups xmmword [rax], xmm0
vxorps xmm0, xmm4, xmmword [r8 + 0x10]
vmovups xmm4, xmmword [rax + 0x30]
vmovups xmmword [rax + 0x10], xmm0
vxorps xmm0, xmm5, xmmword [r8 + 0x20]
vmovups xmm5, xmmword [rax + 0x40]
vmovups xmmword [rax + 0x20], xmm0
vxorps xmm0, xmm4, xmmword [r8 + 0x30]
vmovups xmm4, xmmword [rax + 0x50]
vmovups xmmword [rax + 0x30], xmm0
vxorps xmm0, xmm5, xmmword [r8 + 0x40]
vmovups xmm5, xmmword [rax + 0x60]
vmovups xmmword [rax + 0x40], xmm0
vxorps xmm0, xmm4, xmmword [r8 + 0x50]
vmovups xmm4, xmmword [rax + 0x70]
vmovups xmmword [rax + 0x50], xmm0
vxorps xmm0, xmm5, xmmword [r8 + 0x60]
vmovups xmm5, xmmword [rax + 0x80]
vmovups xmmword [rax + 0x60], xmm0
vxorps xmm0, xmm4, xmmword [r8 + 0x70]
vmovups xmm4, xmmword [rax + 0x90]
vmovups xmmword [rax + 0x70], xmm0
vxorps xmm0, xmm5, xmmword [r8 + 0x80]
vmovups xmm5, xmmword [rax + 0xa0]
vmovups xmmword [rax + 0x80], xmm0
vxorps xmm0, xmm4, xmmword [r8 + 0x90]
vmovups xmmword [rax + 0x90], xmm0
vxorps xmm0, xmm5, xmmword [r8 + 0xa0]
vmovups xmmword [rax + 0xa0], xmm0
vmovups xmm4, xmmword [rax + 0xb0]
vmovups xmm5, xmmword [rax + 0xc0]
vxorps xmm0, xmm4, xmmword [r8 + 0xb0]
vmovups xmm4, xmmword [rax + 0xd0]
vmovups xmmword [rax + 0xb0], xmm0
vxorps xmm0, xmm5, xmmword [r8 + 0xc0]
vmovups xmmword [rax + 0xc0], xmm0
vxorps xmm0, xmm4, xmmword [r8 + 0xd0]
vmovups xmmword [rax + 0xd0], xmm0
vmovups xmm5, xmmword [r8 + 0xe0]
vxorps xmm0, xmm5, xmmword [rax + 0xe0]
vmovups xmmword [rax + 0xe0], xmm0
test r9d, r9d
je 0x570da9
mov r8, rax
movzx eax, byte [rsp + r11 + 0x80]
movzx r11d, byte [r8]
xor eax, r11d
mov byte [r8], al
lea eax, [rcx + 1]
cmp r10d, eax
jbe 0x570da9
lea r8, [rbp + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r11d, byte [r8]
xor eax, r11d
mov byte [r8], al
lea eax, [rcx + 2]
cmp r10d, eax
jbe 0x570da9
lea r8, [rbp + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r11d, byte [r8]
xor eax, r11d
mov byte [r8], al
lea eax, [rcx + 3]
cmp r10d, eax
jbe 0x570da9
lea r8, [rbp + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r11d, byte [r8]
xor eax, r11d
mov byte [r8], al
lea eax, [rcx + 4]
cmp r10d, eax
jbe 0x570da9
lea r8, [rbp + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r11d, byte [r8]
xor eax, r11d
mov byte [r8], al
lea eax, [rcx + 5]
cmp r10d, eax
jbe 0x570da9
lea r8, [rbp + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r11d, byte [r8]
xor eax, r11d
mov byte [r8], al
lea eax, [rcx + 6]
cmp r10d, eax
jbe 0x570da9
lea r8, [rbp + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r11d, byte [r8]
xor eax, r11d
mov byte [r8], al
lea eax, [rcx + 7]
cmp r10d, eax
jbe 0x570da9
lea r8, [rbp + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r11d, byte [r8]
xor eax, r11d
mov byte [r8], al
lea eax, [rcx + 8]
cmp r10d, eax
jbe 0x570da9
lea r8, [rbp + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r11d, byte [r8]
xor eax, r11d
mov byte [r8], al
lea eax, [rcx + 9]
cmp r10d, eax
jbe 0x570da9
lea r8, [rbp + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r11d, byte [r8]
xor eax, r11d
mov byte [r8], al
lea eax, [rcx + 0xa]
cmp r10d, eax
jbe 0x570da9
lea r8, [rbp + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r11d, byte [r8]
xor eax, r11d
mov byte [r8], al
lea eax, [rcx + 0xb]
cmp r10d, eax
jbe 0x570da9
lea r8, [rbp + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r11d, byte [r8]
xor eax, r11d
mov byte [r8], al
lea eax, [rcx + 0xc]
cmp r10d, eax
jbe 0x570da9
lea r8, [rbp + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r11d, byte [r8]
xor eax, r11d
mov byte [r8], al
lea eax, [rcx + 0xd]
cmp r10d, eax
jbe 0x570da9
lea r8, [rbp + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r11d, byte [r8]
xor eax, r11d
mov byte [r8], al
lea eax, [rcx + 0xe]
cmp r10d, eax
jbe 0x570da9
lea rcx, [rbp + rax]
movzx eax, byte [rsp + rax + 0x80]
movzx r8d, byte [rcx]
xor eax, r8d
mov byte [rcx], al
mov rcx, qword [rsp + 0x20]
mov r12d, r10d
mov r14d, r13d
add rcx, r12
shr r14d, 2
je 0x571032
lea r11, [rdx + r12 + 0x50]
lea rsi, [rsp + 0x1d0]
lea rax, [rdx + r12 + 0x40]
lea r8d, [r14 - 1]
cmp r15, r11
setae r11b
cmp rax, rsi
setae sil
or r11d, esi
and r11d, 1
je 0x571509
cmp r8d, 2
jbe 0x571509
vmovups xmm4, xmmword [rax]
mov r8d, r13d
vxorps xmm0, xmm4, xmmword [rsp + 0x1c0]
shr r8d, 4
vmovups xmmword [rsp + 0x1c0], xmm0
cmp r8d, 1
je 0x570fec
vmovups xmm5, xmmword [rax + 0x10]
vxorps xmm0, xmm5, xmmword [rsp + 0x1d0]
vmovups xmmword [rsp + 0x1d0], xmm0
cmp r8d, 2
je 0x570fec
vmovups xmm4, xmmword [rax + 0x20]
vxorps xmm0, xmm4, xmmword [rsp + 0x1e0]
vmovups xmmword [rsp + 0x1e0], xmm0
cmp r8d, 3
je 0x570fec
vmovups xmm5, xmmword [rax + 0x30]
vxorps xmm0, xmm5, xmmword [rsp + 0x1f0]
vmovups xmmword [rsp + 0x1f0], xmm0
cmp r8d, 4
je 0x570fec
vmovups xmm4, xmmword [rax + 0x40]
vxorps xmm0, xmm4, xmmword [rsp + 0x200]
vmovups xmmword [rsp + 0x200], xmm0
cmp r8d, 5
je 0x570fec
vmovups xmm5, xmmword [rax + 0x50]
vxorps xmm0, xmm5, xmmword [rsp + 0x210]
vmovups xmmword [rsp + 0x210], xmm0
cmp r8d, 6
je 0x570fec
vmovups xmm4, xmmword [rax + 0x60]
vxorps xmm0, xmm4, xmmword [rsp + 0x220]
vmovups xmmword [rsp + 0x220], xmm0
cmp r8d, 7
je 0x570fec
vmovups xmm5, xmmword [rax + 0x70]
vxorps xmm0, xmm5, xmmword [rsp + 0x230]
vmovups xmmword [rsp + 0x230], xmm0
cmp r8d, 8
je 0x570fec
vmovups xmm4, xmmword [rax + 0x80]
vxorps xmm0, xmm4, xmmword [rsp + 0x240]
vmovups xmmword [rsp + 0x240], xmm0
cmp r8d, 9
je 0x570fec
vmovups xmm5, xmmword [rax + 0x90]
vxorps xmm0, xmm5, xmmword [rsp + 0x250]
vmovups xmmword [rsp + 0x250], xmm0
cmp r8d, 0xa
je 0x570fec
vmovups xmm4, xmmword [rax + 0xa0]
vxorps xmm0, xmm4, xmmword [rsp + 0x260]
vmovups xmmword [rsp + 0x260], xmm0
cmp r8d, 0xb
je 0x570fec
vmovups xmm5, xmmword [rax + 0xb0]
vxorps xmm0, xmm5, xmmword [rsp + 0x270]
vmovups xmmword [rsp + 0x270], xmm0
cmp r8d, 0xc
je 0x570fec
vmovups xmm4, xmmword [rax + 0xc0]
vxorps xmm0, xmm4, xmmword [rsp + 0x280]
vmovups xmmword [rsp + 0x280], xmm0
cmp r8d, 0xd
je 0x570fec
vmovups xmm5, xmmword [rax + 0xd0]
vxorps xmm0, xmm5, xmmword [rsp + 0x290]
vmovups xmmword [rsp + 0x290], xmm0
cmp r8d, 0xf
jne 0x570fec
vmovups xmm0, xmmword [rax + 0xe0]
vxorps xmm0, xmm0, xmmword [rsp + 0x2a0]
vmovups xmmword [rsp + 0x2a0], xmm0
shl r8d, 2
cmp r14d, r8d
je 0x571032
mov eax, r8d
shl rax, 2
mov r11d, dword [rcx + rax]
xor dword [r15 + rax], r11d
lea eax, [r8 + 1]
cmp r14d, eax
jbe 0x571032
shl rax, 2
add r8d, 2
mov r11d, dword [rcx + rax]
xor dword [r15 + rax], r11d
cmp r14d, r8d
jbe 0x571032
lea rax, [r8*4]
mov r8d, dword [rcx + rax]
xor dword [r15 + rax], r8d
and ebx, 3
je 0x571377
mov eax, r13d
sub eax, ebx
cmp r13d, eax
jbe 0x571377
mov r8d, eax
lea rsi, [r8 + 0x180]
mov qword [rsp + 0x28], r8
mov r11, rsi
lea rsi, [r12 + r8 + 0x40]
mov qword [rsp + 0x20], rsi
lea rsi, [r12 + r8 + 0x50]
mov qword [rsp + 0x30], r11
cmp r11, rsi
lea r11, [r8 + 0x190]
setge sil
cmp qword [rsp + 0x20], r11
setge byte [rsp + 0x3f]
movzx r11d, byte [rsp + 0x3f]
or esi, r11d
and esi, 1
je 0x571565
lea esi, [rbx - 1]
cmp esi, 0xe
jbe 0x571565
mov rsi, qword [rsp + 0x30]
add rsi, rdx
add rdx, qword [rsp + 0x20]
vmovups xmm4, xmmword [rsi]
vmovups xmm5, xmmword [rsi + 0x10]
vxorps xmm0, xmm4, xmmword [rdx]
vmovups xmm4, xmmword [rsi + 0x20]
vmovups xmmword [rsi], xmm0
vxorps xmm0, xmm5, xmmword [rdx + 0x10]
vmovups xmm5, xmmword [rsi + 0x30]
vmovups xmmword [rsi + 0x10], xmm0
vxorps xmm0, xmm4, xmmword [rdx + 0x20]
vmovups xmm4, xmmword [rsi + 0x40]
vmovups xmmword [rsi + 0x20], xmm0
vxorps xmm0, xmm5, xmmword [rdx + 0x30]
vmovups xmm5, xmmword [rsi + 0x50]
vmovups xmmword [rsi + 0x30], xmm0
vxorps xmm0, xmm4, xmmword [rdx + 0x40]
vmovups xmm4, xmmword [rsi + 0x60]
vmovups xmmword [rsi + 0x40], xmm0
vxorps xmm0, xmm5, xmmword [rdx + 0x50]
vmovups xmm5, xmmword [rsi + 0x70]
vmovups xmmword [rsi + 0x50], xmm0
vxorps xmm0, xmm4, xmmword [rdx + 0x60]
vmovups xmm4, xmmword [rsi + 0x80]
vmovups xmmword [rsi + 0x60], xmm0
vxorps xmm0, xmm5, xmmword [rdx + 0x70]
vmovups xmm5, xmmword [rsi + 0x90]
vmovups xmmword [rsi + 0x70], xmm0
vxorps xmm0, xmm4, xmmword [rdx + 0x80]
vmovups xmmword [rsi + 0x80], xmm0
vxorps xmm0, xmm5, xmmword [rdx + 0x90]
vmovups xmmword [rsi + 0x90], xmm0
vmovups xmm4, xmmword [rsi + 0xa0]
vmovups xmm5, xmmword [rsi + 0xb0]
vxorps xmm0, xmm4, xmmword [rdx + 0xa0]
vmovups xmm4, xmmword [rsi + 0xc0]
vmovups xmmword [rsi + 0xa0], xmm0
vxorps xmm0, xmm5, xmmword [rdx + 0xb0]
vmovups xmm5, xmmword [rsi + 0xd0]
vmovups xmmword [rsi + 0xb0], xmm0
vxorps xmm0, xmm4, xmmword [rdx + 0xc0]
vmovups xmmword [rsi + 0xc0], xmm0
vxorps xmm0, xmm5, xmmword [rdx + 0xd0]
vmovups xmmword [rsi + 0xd0], xmm0
vmovups xmm0, xmmword [rdx + 0xe0]
vxorps xmm0, xmm0, xmmword [rsi + 0xe0]
vmovups xmmword [rsi + 0xe0], xmm0
test ebx, ebx
je 0x571377
lea r11, [r15 + r8]
movzx edx, byte [rcx + r8]
movzx r8d, byte [r11]
xor edx, r8d
mov byte [r11], dl
lea edx, [rax + 1]
cmp r13d, edx
jbe 0x571377
lea r8, [r15 + rdx]
movzx edx, byte [rcx + rdx]
movzx r11d, byte [r8]
xor edx, r11d
mov byte [r8], dl
lea edx, [rax + 2]
cmp r13d, edx
jbe 0x571377
lea r8, [r15 + rdx]
movzx edx, byte [rcx + rdx]
movzx r11d, byte [r8]
xor edx, r11d
mov byte [r8], dl
lea edx, [rax + 3]
cmp r13d, edx
jbe 0x571377
lea r8, [r15 + rdx]
movzx edx, byte [rcx + rdx]
movzx r11d, byte [r8]
xor edx, r11d
mov byte [r8], dl
lea edx, [rax + 4]
cmp r13d, edx
jbe 0x571377
lea r8, [r15 + rdx]
movzx edx, byte [rcx + rdx]
movzx r11d, byte [r8]
xor edx, r11d
mov byte [r8], dl
lea edx, [rax + 5]
cmp r13d, edx
jbe 0x571377
lea r8, [r15 + rdx]
movzx edx, byte [rcx + rdx]
movzx r11d, byte [r8]
xor edx, r11d
mov byte [r8], dl
lea edx, [rax + 6]
cmp r13d, edx
jbe 0x571377
lea r8, [r15 + rdx]
movzx edx, byte [rcx + rdx]
movzx r11d, byte [r8]
xor edx, r11d
mov byte [r8], dl
lea edx, [rax + 7]
cmp r13d, edx
jbe 0x571377
lea r8, [r15 + rdx]
movzx edx, byte [rcx + rdx]
movzx r11d, byte [r8]
xor edx, r11d
mov byte [r8], dl
lea edx, [rax + 8]
cmp r13d, edx
jbe 0x571377
lea r8, [r15 + rdx]
movzx edx, byte [rcx + rdx]
movzx r11d, byte [r8]
xor edx, r11d
mov byte [r8], dl
lea edx, [rax + 9]
cmp r13d, edx
jbe 0x571377
lea r8, [r15 + rdx]
movzx edx, byte [rcx + rdx]
movzx r11d, byte [r8]
xor edx, r11d
mov byte [r8], dl
lea edx, [rax + 0xa]
cmp r13d, edx
jbe 0x571377
lea r8, [r15 + rdx]
movzx edx, byte [rcx + rdx]
movzx r11d, byte [r8]
xor edx, r11d
mov byte [r8], dl
lea edx, [rax + 0xb]
cmp r13d, edx
jbe 0x571377
lea r8, [r15 + rdx]
movzx edx, byte [rcx + rdx]
movzx r11d, byte [r8]
xor edx, r11d
mov byte [r8], dl
lea edx, [rax + 0xc]
cmp r13d, edx
jbe 0x571377
lea r8, [r15 + rdx]
movzx edx, byte [rcx + rdx]
movzx r11d, byte [r8]
xor edx, r11d
mov byte [r8], dl
lea edx, [rax + 0xd]
cmp r13d, edx
jbe 0x571377
lea r8, [r15 + rdx]
movzx edx, byte [rcx + rdx]
add eax, 0xe
movzx r11d, byte [r8]
xor edx, r11d
mov byte [r8], dl
cmp r13d, eax
jbe 0x571377
lea rdx, [r15 + rax]
movzx eax, byte [rcx + rax]
movzx ecx, byte [rdx]
xor eax, ecx
mov byte [rdx], al
test edi, edi
je 0x5713a0
lea eax, [rdi - 1]
lea rcx, [rax*4 + 4]
cmp ecx, 8
jae 0x571466
test cl, 4
jne 0x571586
test ecx, ecx
jne 0x5714f6
test r9d, r9d
je 0x5713cb
mov edx, r10d
sub edx, r9d
cmp r10d, edx
jbe 0x5713cb
mov rcx, qword [rsp + 0x360]
lea eax, [r9 - 1]
lea r8, [rax + 1]
add rcx, rdx
add rdx, rbp
call sub.msvcrt.dll_memcpy
add r12, qword [rsp + 0x360]
test r14d, r14d
je 0x5713fd
lea eax, [r14 - 1]
lea rax, [rax*4 + 4]
cmp eax, 8
jae 0x5714af
test al, 4
jne 0x5715aa
test eax, eax
jne 0x5714e9
test ebx, ebx
je 0x5706ed
mov edx, r13d
sub edx, ebx
cmp r13d, edx
jbe 0x5706ed
lea eax, [rbx - 1]
lea rcx, [r12 + rdx]
add rdx, r15
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
jmp 0x5706ed
mov rax, qword [rsp + 0x20]
movzx ecx, byte [rbp + rsi]
movzx eax, byte [rax + rsi]
xor eax, ecx
mov byte [rbp + rsi], al
inc rsi
cmp r10d, esi
ja 0x57142b
jmp 0x570da9
test r8d, r8d
jne 0x570745
mov edi, 0x100
sub edi, r9d
jmp 0x570310
mov rax, qword [rbp]
mov rsi, qword [rsp + 0x360]
mov qword [rsi], rax
mov eax, ecx
mov rsi, qword [rsp + 0x360]
mov rdx, qword [rbp + rax - 8]
mov qword [rsi + rax - 8], rdx
mov rax, qword [rsp + 0x360]
mov rsi, rbp
lea rdi, [rax + 8]
and rdi, 0xfffffffffffffff8
sub rax, rdi
add ecx, eax
sub rsi, rax
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x5713a0
mov rdx, qword [rsp + 0x1c0]
lea rdi, [r12 + 8]
mov rsi, r15
and rdi, 0xfffffffffffffff8
mov qword [r12], rdx
mov edx, eax
mov rcx, qword [r15 + rdx - 8]
mov qword [r12 + rdx - 8], rcx
mov rcx, r12
sub rcx, rdi
sub rsi, rcx
add ecx, eax
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x5713fd
movzx eax, byte [r15]
mov byte [r12], al
jmp 0x5713fd
movzx eax, byte [rbp]
mov rsi, qword [rsp + 0x360]
mov byte [rsi], al
jmp 0x5713a0
mov rax, r15
mov r11, rcx
lea r8, [rsp + r8*4 + 0x1c4]
mov esi, dword [r11]
xor dword [rax], esi
add rax, 4
add r11, 4
cmp r8, rax
jne 0x571517
jmp 0x571032
xor eax, eax
lea rdx, [rsp + 0x40]
mov r8d, dword [rdx + rax*4 + 0x40]
xor dword [rbp + rax*4], r8d
mov r8, rax
inc rax
cmp rcx, r8
jne 0x571535
jmp 0x570a26
mov r10d, dword [rbp]
mov dword [rax], r10d
mov r10d, dword [rbp + rcx - 4]
mov dword [rax + rcx - 4], r10d
jmp 0x57073c
mov r11, r8
lea rdx, [r15 + r11]
movzx r8d, byte [rcx + r11]
inc r11
movzx eax, byte [rdx]
xor eax, r8d
mov byte [rdx], al
cmp r13d, r11d
ja 0x571568
jmp 0x571377
mov eax, dword [rbp]
mov rsi, qword [rsp + 0x360]
mov ecx, ecx
mov dword [rsi], eax
mov eax, dword [rbp + rcx - 4]
mov rsi, qword [rsp + 0x360]
mov dword [rsi + rcx - 4], eax
jmp 0x5713a0
mov edx, dword [r15]
mov eax, eax
mov dword [r12], edx
mov edx, dword [r15 + rax - 4]
mov dword [r12 + rax - 4], edx
jmp 0x5713fd