Function at 0x545080
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x358
vmovups xmmword [rsp + 0x300], xmm6
vmovups xmmword [rsp + 0x310], xmm8
vmovups xmmword [rsp + 0x320], xmm10
vmovups xmmword [rsp + 0x330], xmm12
vmovups xmmword [rsp + 0x340], xmm14
mov r12, qword [rcx]
mov rsi, qword [rcx + 0x10]
mov rdi, qword [rcx + 0x18]
mov r10, qword [rcx + 0x20]
mov r11, qword [rcx + 0x28]
mov r9, qword [rcx + 0x38]
mov r13, qword [rcx + 8]
mov r15, qword [rcx + 0x48]
mov r14, qword [rcx + 0x40]
mov qword [rsp + 0x3b0], r8
lea rbp, [rsp + 0x1c0]
mov r8, qword [rcx + 0x30]
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x88], r13
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0xa0], r10
mov qword [rsp + 0xa8], r11
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0xb8], r9
mov qword [rsp + 0xc8], r15
mov qword [rsp + 0xd0], r12
mov qword [rsp + 0xd8], r13
mov qword [rsp + 0xe0], rsi
mov qword [rsp + 0xe8], rdi
mov qword [rsp + 0xf0], r10
mov qword [rsp + 0xf8], r11
mov qword [rsp + 0x100], r8
mov qword [rsp + 0x108], r9
mov qword [rsp + 0x118], r15
mov qword [rsp + 0x120], r12
mov qword [rsp + 0xc0], r14
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x128], r13
mov rbx, qword [rdx + 0x18]
vmovdqu xmm6, xmmword [rcx]
mov qword [rsp + 0x130], rsi
mov rcx, qword [rdx + 0x10]
mov qword [rsp + 0x150], r8
mov qword [rsp + 0x158], r9
mov qword [rsp + 0x180], r12
mov r12, qword [rdx + 0x20]
mov qword [rsp + 0x188], r13
mov r13, qword [rdx + 0x28]
mov qword [rsp + 0x190], rsi
mov rsi, qword [rdx + 0x30]
mov qword [rsp + 0x1b0], r8
mov r8, qword [rdx]
mov qword [rsp + 0x1b8], r9
mov r9, qword [rdx + 8]
mov qword [rsp + 0x138], rdi
mov qword [rsp + 0x140], r10
mov qword [rsp + 0x148], r11
mov qword [rsp + 0x168], r15
lea r15, [rsp + 0x2e0]
mov qword [rsp + 0x198], rdi
mov rdi, qword [rdx + 0x38]
mov qword [rsp + 0x1a0], r10
mov qword [rsp + 0x1a8], r11
mov qword [rsp + 0x1e0], r12
mov qword [rsp + 0x1e8], r13
vmovups xmmword [rsp + 0x170], xmm6
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x1c0], r8
mov qword [rsp + 0x1c8], r9
mov qword [rsp + 0x1d0], rcx
mov qword [rsp + 0x1d8], rbx
mov qword [rsp + 0x1f0], rsi
mov r10, qword [rdx + 0x40]
mov r11, qword [rdx + 0x48]
vmovdqu xmm6, xmmword [rdx]
mov qword [rsp + 0x1f8], rdi
mov qword [rsp + 0x230], r12
mov qword [rsp + 0x238], r13
mov qword [rsp + 0x248], rdi
mov qword [rsp + 0x280], r12
mov r12d, 0x20
mov qword [rsp + 0x288], r13
lea r13, [rsp + 0x80]
mov qword [rsp + 0x298], rdi
xor edi, edi
mov qword [rsp + 0x200], r10
mov qword [rsp + 0x208], r11
mov qword [rsp + 0x210], r8
mov qword [rsp + 0x218], r9
mov qword [rsp + 0x220], rcx
mov qword [rsp + 0x228], rbx
mov qword [rsp + 0x240], rsi
mov qword [rsp + 0x250], r10
mov qword [rsp + 0x258], r11
mov qword [rsp + 0x260], r8
mov qword [rsp + 0x268], r9
mov qword [rsp + 0x270], rcx
mov qword [rsp + 0x278], rbx
mov qword [rsp + 0x290], rsi
mov qword [rsp + 0x2a0], r10
mov qword [rsp + 0x2a8], r11
mov qword [rsp + 0x2c0], r8
mov qword [rsp + 0x2c8], r9
mov qword [rsp + 0x2d0], rcx
mov qword [rsp + 0x2d8], rbx
vmovups xmmword [rsp + 0x2b0], xmm6
jmp 0x5453a4
dec r12d
je 0x545548
vzeroupper
lea rdx, [rbp + rdi]
lea rcx, [r13 + rdi]
mov r8, r15
call fcn.005441e0
mov eax, dword [rsp + 0x2e0]
vpmovzxbw ymm2, xmmword [rsp + 0x2e0]
vmovdqu ymm3, ymmword [rsp + 0x2e0]
vextracti128 xmm1, ymm2, 1
vpmovzxwd ymm2, xmm2
vextracti128 xmm0, ymm3, 1
vpmovzxwd ymm1, xmm1
vpmovzxbw ymm0, xmm0
vpaddd ymm1, ymm1, ymm2
vextracti128 xmm2, ymm0, 1
vpmovzxwd ymm0, xmm0
vpmovzxwd ymm2, xmm2
vpaddd ymm0, ymm2, ymm0
vpaddd ymm0, ymm1, ymm0
vextracti128 xmm1, ymm0, 1
vpaddd xmm0, xmm1, xmm0
vpsrldq xmm1, xmm0, 8
vpaddd xmm0, xmm0, xmm1
vpsrldq xmm1, xmm0, 4
vpaddd xmm0, xmm0, xmm1
vmovd esi, xmm0
movzx edi, sil
lea rbx, [rbp + rdi]
mov r14, rdi
xor dword [rbx], eax
mov eax, dword [rsp + 0x2e4]
xor dword [rbx + 4], eax
mov eax, dword [rsp + 0x2e8]
xor dword [rbx + 8], eax
mov eax, dword [rsp + 0x2ec]
xor dword [rbx + 0xc], eax
mov eax, dword [rsp + 0x2f0]
xor dword [rbx + 0x10], eax
mov eax, dword [rsp + 0x2f4]
xor dword [rbx + 0x14], eax
mov eax, dword [rsp + 0x2f8]
xor dword [rbx + 0x18], eax
mov eax, dword [rsp + 0x2fc]
xor dword [rbx + 0x1c], eax
test sil, 0xe0
jne 0x5454a5
lea eax, [rdi + 0x100]
add rax, rbp
cmp edi, 0x20
jbe 0x54574e
vmovdqu xmm5, xmmword [rbx]
vmovups xmmword [rax], xmm5
vmovdqu xmm4, xmmword [rbx + 0x10]
vmovups xmmword [rax + 0x10], xmm4
mov r10d, 0x100
sub r10d, r14d
cmp r10d, 0x1f
ja 0x545398
lea r9d, [r14 - 0xe0]
mov eax, r9d
shr eax, 2
je 0x5454f8
dec eax
lea rdx, [rsp + 0x2c0]
mov rcx, rbp
mov dword [rsp + 0x30], r10d
lea r8, [rax*4 + 4]
mov dword [rsp + 0x28], r9d
vzeroupper
call sub.msvcrt.dll_memmove
mov r9d, dword [rsp + 0x28]
mov r10d, dword [rsp + 0x30]
mov edx, r9d
and edx, 3
je 0x545398
mov eax, r9d
sub eax, edx
cmp r9d, eax
jbe 0x545398
sub edx, r9d
lea rcx, [rbp + rax]
mov dword [rsp + 0x28], r10d
lea r8d, [r14 + rdx - 0xe1]
lea rdx, [rsp + rax + 0x2c0]
inc r8
vzeroupper
call sub.msvcrt.dll_memmove
mov r10d, dword [rsp + 0x28]
dec r12d
jne 0x5453a1
cmp r10d, 0x100
jne 0x545810
vmovdqu ymm5, ymmword [rsp + 0x1c0]
mov rax, qword [rsp + 0x3b0]
vpxor ymm0, ymm5, ymmword [rsp + 0x80]
vmovdqu ymm4, ymmword [rsp + 0x1e0]
vmovdqu ymm5, ymmword [rsp + 0x200]
vmovdqu ymm6, ymmword [rsp + 0x220]
vmovdqu ymmword [rsp + 0x1c0], ymm0
vmovq rcx, xmm0
vpextrq rbx, xmm0, 1
vpxor ymm0, ymm4, ymmword [rsp + 0xa0]
vmovdqu ymm4, ymmword [rsp + 0x240]
mov qword [rax], rcx
vmovdqu ymmword [rsp + 0x1e0], ymm0
vmovdqu xmm14, xmm0
vpxor ymm0, ymm5, ymmword [rsp + 0xc0]
vmovdqu ymm5, ymmword [rsp + 0x260]
mov qword [rax + 8], rbx
vmovdqu xmm12, xmm0
vmovups xmmword [rax + 0x20], xmm14
vmovdqu ymmword [rsp + 0x200], ymm0
vpxor ymm0, ymm6, ymmword [rsp + 0xe0]
vmovdqu ymmword [rsp + 0x220], ymm0
vmovdqu xmm10, xmm0
vpxor ymm0, ymm4, ymmword [rsp + 0x100]
vmovdqu ymm4, ymmword [rsp + 0x280]
vmovdqu ymmword [rsp + 0x240], ymm0
vmovdqu xmm8, xmm0
vpxor ymm0, ymm5, ymmword [rsp + 0x120]
vmovdqu ymm5, ymmword [rsp + 0x2a0]
vmovdqu ymmword [rsp + 0x260], ymm0
vmovdqu xmm6, xmm0
vpxor ymm0, ymm4, ymmword [rsp + 0x140]
vmovdqu ymmword [rsp + 0x280], ymm0
vmovdqu xmm4, xmm0
vpxor ymm0, ymm5, ymmword [rsp + 0x160]
vmovdqu xmm5, xmmword [rsp + 0x1d0]
vmovups xmmword [rax + 0x10], xmm5
vmovdqu xmm5, xmmword [rsp + 0x1f0]
vmovdqu ymmword [rsp + 0x2a0], ymm0
vmovups xmmword [rax + 0x30], xmm5
vmovups xmmword [rax + 0x40], xmm12
vmovdqu xmm5, xmmword [rsp + 0x210]
vmovups xmmword [rax + 0xa0], xmm6
vmovdqu xmm6, xmmword [rsp + 0x270]
vmovups xmmword [rax + 0x50], xmm5
vmovdqu xmm5, xmmword [rsp + 0x230]
vmovups xmmword [rax + 0xb0], xmm6
vmovdqu xmm6, xmmword [rsp + 0x290]
vmovups xmmword [rax + 0x70], xmm5
vmovdqu xmm5, xmmword [rsp + 0x250]
vmovups xmmword [rax + 0xc0], xmm4
vmovdqu xmm4, xmmword [rsp + 0x2b0]
vmovups xmmword [rax + 0x60], xmm10
vmovups xmmword [rax + 0x80], xmm8
vmovups xmmword [rax + 0x90], xmm5
vmovups xmmword [rax + 0xd0], xmm6
vmovups xmmword [rax + 0xe0], xmm0
vmovups xmmword [rax + 0xf0], xmm4
vzeroupper
vmovups xmm6, xmmword [rsp + 0x300]
vmovups xmm8, xmmword [rsp + 0x310]
vmovups xmm10, xmmword [rsp + 0x320]
vmovups xmm12, xmmword [rsp + 0x330]
vmovups xmm14, xmmword [rsp + 0x340]
add rsp, 0x358
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 0x20
sub ecx, edi
mov r8d, ecx
mov edx, ecx
and r8d, 3
shr edx, 2
je 0x545e70
dec edx
lea r9, [rdx*4 + 4]
mov edx, r9d
cmp r9d, 8
jae 0x5457c0
and r9d, 4
jne 0x545ecd
test edx, edx
jne 0x5457f2
test r8d, r8d
je 0x5454a5
mov edx, ecx
sub edx, r8d
cmp ecx, edx
jbe 0x5454a5
lea rcx, [rax + rdx]
mov eax, 0x1f
add rdx, rbx
lea eax, [r8 + rax - 0x20]
lea r8, [rax + 1]
vzeroupper
call sub.msvcrt.dll_memcpy
jmp 0x5454a5
mov edx, r9d
mov r10, qword [rbx + rdx - 8]
mov qword [rax + rdx - 8], r10
lea edx, [r9 - 1]
cmp edx, 8
jb 0x545788
and edx, 0xfffffff8
xor r9d, r9d
mov r10d, r9d
add r9d, 8
mov r11, qword [rbx + r10]
mov qword [rax + r10], r11
cmp r9d, edx
jb 0x5457dc
jmp 0x545788
movzx r9d, byte [rbx]
mov byte [rax], r9b
test dl, 2
je 0x545788
movzx r9d, word [rbx + rdx - 2]
mov word [rax + rdx - 2], r9w
jmp 0x545788
mov r15d, r10d
shr r15d, 2
je 0x5459ab
lea rax, [rbx + 0x20]
lea ecx, [r15 - 1]
cmp r13, rax
lea rax, [rsp + 0xa0]
setae dl
cmp rbx, rax
setae al
or dl, al
je 0x545e87
cmp ecx, 6
jbe 0x545e87
vmovdqu ymm6, ymmword [rbx]
mov eax, r10d
vpxor ymm0, ymm6, ymmword [rsp + 0x80]
shr eax, 5
vmovdqu ymmword [rbx], ymm0
cmp eax, 1
je 0x54590b
vmovdqu ymm4, ymmword [rbx + 0x20]
vpxor ymm0, ymm4, ymmword [rsp + 0xa0]
vmovdqu ymmword [rbx + 0x20], ymm0
cmp eax, 2
je 0x54590b
vmovdqu ymm6, ymmword [rbx + 0x40]
vpxor ymm0, ymm6, ymmword [rsp + 0xc0]
vmovdqu ymmword [rbx + 0x40], ymm0
cmp eax, 3
je 0x54590b
vmovdqu ymm4, ymmword [rbx + 0x60]
vpxor ymm0, ymm4, ymmword [rsp + 0xe0]
vmovdqu ymmword [rbx + 0x60], ymm0
cmp eax, 4
je 0x54590b
vmovdqu ymm6, ymmword [rbx + 0x80]
vpxor ymm0, ymm6, ymmword [rsp + 0x100]
vmovdqu ymmword [rbx + 0x80], ymm0
cmp eax, 5
je 0x54590b
vmovdqu ymm4, ymmword [rbx + 0xa0]
vpxor ymm0, ymm4, ymmword [rsp + 0x120]
vmovdqu ymmword [rbx + 0xa0], ymm0
cmp eax, 7
jne 0x54590b
vmovdqu ymm6, ymmword [rsp + 0x140]
vpxor ymm0, ymm6, ymmword [rbx + 0xc0]
vmovdqu ymmword [rbx + 0xc0], ymm0
shl eax, 3
cmp r15d, eax
je 0x5459ab
mov edx, eax
shl rdx, 2
mov ecx, dword [rsp + rdx + 0x80]
xor dword [rbx + rdx], ecx
lea edx, [rax + 1]
cmp r15d, edx
jbe 0x5459ab
shl rdx, 2
mov ecx, dword [rsp + rdx + 0x80]
xor dword [rbx + rdx], ecx
lea edx, [rax + 2]
cmp r15d, edx
jbe 0x5459ab
shl rdx, 2
mov ecx, dword [rsp + rdx + 0x80]
xor dword [rbx + rdx], ecx
lea edx, [rax + 3]
cmp r15d, edx
jbe 0x5459ab
shl rdx, 2
mov ecx, dword [rsp + rdx + 0x80]
xor dword [rbx + rdx], ecx
lea edx, [rax + 4]
cmp r15d, edx
jbe 0x5459ab
shl rdx, 2
mov ecx, dword [rsp + rdx + 0x80]
xor dword [rbx + rdx], ecx
lea edx, [rax + 5]
cmp r15d, edx
jbe 0x5459ab
shl rdx, 2
add eax, 6
mov ecx, dword [rsp + rdx + 0x80]
xor dword [rbx + rdx], ecx
cmp r15d, eax
jbe 0x5459ab
shl rax, 2
mov edx, dword [rsp + rax + 0x80]
xor dword [rbx + rax], edx
lea rax, [rsp + 0x40]
mov r9d, r10d
and r9d, 3
je 0x545ac6
mov ecx, r10d
sub ecx, r9d
cmp ecx, r10d
jae 0x545ac6
mov edx, ecx
lea r12, [rbx + rdx + 0x20]
lea r11, [rax + rdx + 0x40]
mov qword [rsp + 0x28], rdx
cmp r11, r12
lea r8, [rbx + rdx]
lea r12, [rax + rdx + 0x60]
setae byte [rsp + 0x30]
cmp r8, r12
movzx edi, byte [rsp + 0x30]
setae r12b
or dil, r12b
je 0x545eea
lea r12d, [r9 - 1]
cmp r12d, 0x1e
jbe 0x545eea
vmovdqu ymm4, ymmword [r8]
vpxor ymm0, ymm4, ymmword [r11]
vmovdqu ymm6, ymmword [r8 + 0x20]
vmovdqu ymm4, ymmword [r8 + 0x40]
vmovdqu ymmword [r8], ymm0
vpxor ymm0, ymm6, ymmword [r11 + 0x20]
vmovdqu ymm5, ymmword [r8 + 0x60]
vmovdqu ymm6, ymmword [r8 + 0x80]
vmovdqu ymmword [r8 + 0x20], ymm0
vpxor ymm0, ymm4, ymmword [r11 + 0x40]
vmovdqu ymm4, ymmword [r8 + 0xa0]
vmovdqu ymmword [r8 + 0x40], ymm0
vpxor ymm0, ymm5, ymmword [r11 + 0x60]
vmovdqu ymmword [r8 + 0x60], ymm0
vpxor ymm0, ymm6, ymmword [r11 + 0x80]
vmovdqu ymmword [r8 + 0x80], ymm0
vpxor ymm0, ymm4, ymmword [r11 + 0xa0]
vmovdqu ymmword [r8 + 0xa0], ymm0
vmovdqu ymm5, ymmword [r11 + 0xc0]
vpxor ymm0, ymm5, ymmword [r8 + 0xc0]
vmovdqu ymmword [r8 + 0xc0], ymm0
test r9d, r9d
jne 0x545ab2
jmp 0x545ac6
mov edx, ecx
movzx r8d, byte [rsp + rdx + 0x80]
inc ecx
xor byte [rbx + rdx], r8b
cmp ecx, r10d
jb 0x545ab0
mov edi, r10d
mov r12d, r14d
add r13, rdi
shr r12d, 2
je 0x545c68
lea r8, [rax + rdi + 0x60]
lea rdx, [rax + rdi + 0x40]
cmp rbp, r8
lea r8, [rsp + 0x1e0]
lea ecx, [r12 - 1]
setae r11b
cmp rdx, r8
setae r8b
or r11b, r8b
je 0x545ea7
cmp ecx, 6
jbe 0x545ea7
vmovdqu ymm6, ymmword [rsp + 0x1c0]
mov ecx, r14d
vpxor ymm0, ymm6, ymmword [rdx]
shr ecx, 5
vmovdqu ymmword [rsp + 0x1c0], ymm0
cmp ecx, 1
je 0x545be5
vmovdqu ymm4, ymmword [rsp + 0x1e0]
vpxor ymm0, ymm4, ymmword [rdx + 0x20]
vmovdqu ymmword [rsp + 0x1e0], ymm0
cmp ecx, 2
je 0x545be5
vmovdqu ymm5, ymmword [rsp + 0x200]
vpxor ymm0, ymm5, ymmword [rdx + 0x40]
vmovdqu ymmword [rsp + 0x200], ymm0
cmp ecx, 3
je 0x545be5
vmovdqu ymm6, ymmword [rsp + 0x220]
vpxor ymm0, ymm6, ymmword [rdx + 0x60]
vmovdqu ymmword [rsp + 0x220], ymm0
cmp ecx, 4
je 0x545be5
vmovdqu ymm4, ymmword [rsp + 0x240]
vpxor ymm0, ymm4, ymmword [rdx + 0x80]
vmovdqu ymmword [rsp + 0x240], ymm0
cmp ecx, 5
je 0x545be5
vmovdqu ymm5, ymmword [rsp + 0x260]
vpxor ymm0, ymm5, ymmword [rdx + 0xa0]
vmovdqu ymmword [rsp + 0x260], ymm0
cmp ecx, 7
jne 0x545be5
vmovdqu ymm6, ymmword [rdx + 0xc0]
vpxor ymm0, ymm6, ymmword [rsp + 0x280]
vmovdqu ymmword [rsp + 0x280], ymm0
lea edx, [rcx*8]
cmp r12d, edx
je 0x545c68
mov ecx, edx
mov r8d, dword [r13 + rcx*4]
xor dword [rbp + rcx*4], r8d
lea ecx, [rdx + 1]
cmp r12d, ecx
jbe 0x545c68
mov r8d, dword [r13 + rcx*4]
xor dword [rbp + rcx*4], r8d
lea ecx, [rdx + 2]
cmp r12d, ecx
jbe 0x545c68
mov r8d, dword [r13 + rcx*4]
xor dword [rbp + rcx*4], r8d
lea ecx, [rdx + 3]
cmp r12d, ecx
jbe 0x545c68
mov r8d, dword [r13 + rcx*4]
xor dword [rbp + rcx*4], r8d
lea ecx, [rdx + 4]
cmp r12d, ecx
jbe 0x545c68
mov r8d, dword [r13 + rcx*4]
xor dword [rbp + rcx*4], r8d
lea ecx, [rdx + 5]
cmp r12d, ecx
jbe 0x545c68
add edx, 6
mov r8d, dword [r13 + rcx*4]
xor dword [rbp + rcx*4], r8d
cmp r12d, edx
jbe 0x545c68
mov ecx, dword [r13 + rdx*4]
xor dword [rbp + rdx*4], ecx
and esi, 3
je 0x545d93
mov ecx, r14d
sub ecx, esi
cmp r14d, ecx
jbe 0x545d93
mov edx, ecx
mov dword [rsp + 0x38], ecx
lea r8, [rdx + 0x180]
mov r11, rdx
mov rcx, r8
lea r8, [rdi + rdx + 0x40]
mov qword [rsp + 0x28], r8
lea r8, [rdi + rdx + 0x60]
cmp rcx, r8
mov qword [rsp + 0x30], rcx
lea r8, [rdx + 0x1a0]
setge byte [rsp + 0x3f]
cmp qword [rsp + 0x28], r8
movzx ecx, byte [rsp + 0x3f]
setge r8b
or cl, r8b
je 0x545e4d
lea r8d, [rsi - 1]
cmp r8d, 0x1e
jbe 0x545e4d
mov r8, qword [rsp + 0x30]
add r8, rax
add rax, qword [rsp + 0x28]
vmovdqu ymm4, ymmword [r8]
vpxor ymm0, ymm4, ymmword [rax]
vmovdqu ymm5, ymmword [r8 + 0x20]
vmovdqu ymm6, ymmword [r8 + 0x40]
vmovdqu ymmword [r8], ymm0
vpxor ymm0, ymm5, ymmword [rax + 0x20]
vmovdqu ymm4, ymmword [r8 + 0x60]
vmovdqu ymm5, ymmword [r8 + 0x80]
vmovdqu ymmword [r8 + 0x20], ymm0
vpxor ymm0, ymm6, ymmword [rax + 0x40]
vmovdqu ymm6, ymmword [r8 + 0xa0]
vmovdqu ymmword [r8 + 0x40], ymm0
vpxor ymm0, ymm4, ymmword [rax + 0x60]
vmovdqu ymmword [r8 + 0x60], ymm0
vpxor ymm0, ymm5, ymmword [rax + 0x80]
vmovdqu ymmword [r8 + 0x80], ymm0
vpxor ymm0, ymm6, ymmword [rax + 0xa0]
vmovdqu ymmword [r8 + 0xa0], ymm0
vmovdqu ymm0, ymmword [rax + 0xc0]
vpxor ymm0, ymm0, ymmword [r8 + 0xc0]
vmovdqu ymmword [r8 + 0xc0], ymm0
test esi, esi
je 0x545d93
mov ecx, dword [rsp + 0x38]
jmp 0x545d82
mov edx, ecx
inc ecx
movzx eax, byte [r13 + rdx]
xor byte [rbp + rdx], al
cmp r14d, ecx
ja 0x545d80
test r15d, r15d
je 0x545ee2
lea eax, [r15 - 1]
mov rcx, qword [rsp + 0x3b0]
mov rdx, rbx
mov dword [rsp + 0x30], r9d
lea r8, [rax*4 + 4]
mov dword [rsp + 0x28], r10d
vzeroupper
call sub.msvcrt.dll_memcpy
mov r10d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0x30]
test r9d, r9d
je 0x545dfa
mov edx, r10d
sub edx, r9d
cmp edx, r10d
jae 0x545dfa
mov rcx, qword [rsp + 0x3b0]
lea eax, [r9 - 1]
lea r8, [rax + 1]
add rcx, rdx
add rdx, rbx
call sub.msvcrt.dll_memcpy
add rdi, qword [rsp + 0x3b0]
test r12d, r12d
je 0x545e1f
lea eax, [r12 - 1]
mov rdx, rbp
mov rcx, rdi
lea r8, [rax*4 + 4]
call sub.msvcrt.dll_memcpy
test esi, esi
je 0x54570d
mov edx, r14d
sub edx, esi
cmp r14d, edx
jbe 0x54570d
lea eax, [rsi - 1]
lea rcx, [rdi + rdx]
add rdx, rbp
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
jmp 0x54570d
lea rdx, [rbp + r11]
movzx eax, byte [rdx]
xor al, byte [r13 + r11]
inc r11
mov byte [rdx], al
cmp r14d, r11d
ja 0x545e4d
jmp 0x545d93
test r8d, r8d
jne 0x545791
mov r10d, 0x100
sub r10d, r14d
jmp 0x545398
xor edx, edx
lea rax, [rsp + 0x40]
mov r8d, dword [rax + rdx*4 + 0x40]
xor dword [rbx + rdx*4], r8d
mov r8, rdx
inc rdx
cmp rcx, r8
jne 0x545e8e
jmp 0x5459b0
mov rdx, rbp
mov r8, r13
lea rcx, [rsp + rcx*4 + 0x1c4]
mov r11d, dword [r8]
xor dword [rdx], r11d
add rdx, 4
add r8, 4
cmp rcx, rdx
jne 0x545eb5
jmp 0x545c68
mov r9d, dword [rbx]
mov dword [rax], r9d
mov r9d, dword [rbx + rdx - 4]
mov dword [rax + rdx - 4], r9d
jmp 0x545788
vzeroupper
jmp 0x545dcf
mov rdi, rdx
movzx edx, byte [r13 + rdi]
xor byte [rbx + rdi], dl
inc rdi
cmp r10d, edi
ja 0x545eed
jmp 0x545ac6