Function at 0x54c790
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x328
xor r15d, r15d
mov rax, qword [rcx]
mov r11, qword [rcx + 0x28]
mov r10, qword [rcx + 0x20]
mov r9, qword [rcx + 0x38]
mov rsi, qword [rcx + 0x10]
mov rdi, qword [rcx + 0x18]
mov r12, qword [rcx + 0x40]
mov r13, qword [rcx + 0x48]
mov rbx, rdx
mov qword [rsp + 0x380], r8
mov rdx, qword [rcx + 8]
mov r8, qword [rcx + 0x30]
lea rbp, [rsp + 0x1e0]
mov qword [rsp + 0xc8], r11
mov qword [rsp + 0x118], r11
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xc0], r10
mov rcx, rbp
mov qword [rsp + 0xd8], r9
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x110], r10
mov qword [rsp + 0x120], r8
mov qword [rsp + 0x128], r9
mov qword [rsp + 0x140], rax
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xb8], rdi
mov qword [rsp + 0xe0], r12
mov qword [rsp + 0xe8], r13
mov qword [rsp + 0x100], rsi
mov qword [rsp + 0x108], rdi
mov qword [rsp + 0x130], r12
mov qword [rsp + 0x138], r13
mov qword [rsp + 0x148], rdx
mov qword [rsp + 0x170], r8
mov qword [rsp + 0x198], rdx
mov qword [rsp + 0x1a8], rdx
mov qword [rsp + 0x1d0], r8
mov rdx, rbx
mov r8d, 0x100
mov qword [rsp + 0x168], r11
mov qword [rsp + 0x1c8], r11
mov qword [rsp + 0x150], rsi
mov qword [rsp + 0x158], rdi
mov qword [rsp + 0x160], r10
mov qword [rsp + 0x178], r9
mov qword [rsp + 0x180], r12
mov qword [rsp + 0x188], r13
mov qword [rsp + 0x190], rax
mov qword [rsp + 0x1a0], rax
mov qword [rsp + 0x1b0], rsi
mov qword [rsp + 0x1b8], rdi
mov qword [rsp + 0x1c0], r10
mov qword [rsp + 0x1d8], r9
call sub.msvcrt.dll_memcpy
vmovdqu xmm5, xmmword [rbx]
lea rax, [rsp + 0x300]
mov dword [rsp + 0x20], 0x20
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xa0]
mov r11, r15
mov qword [rsp + 0x28], rax
vmovdqu xmmword [rsp + 0x2e0], xmm5
vmovdqu xmm5, xmmword [rbx + 0x10]
vmovdqu xmmword [rsp + 0x2f0], xmm5
jmp 0x54c98a
dec dword [rsp + 0x20]
je 0x54cc4a
mov rax, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
lea rdx, [rbp + r11]
lea rcx, [rax + r11]
call fcn.0054c590
vmovdqu xmm0, xmmword [rsp + 0x300]
mov edx, dword [rsp + 0x300]
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 + 0x310]
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 eax, xmm0
movzx r11d, al
lea r9, [rbp + r11]
lea r15d, [r11 + 4]
lea r12d, [r11 + 0x10]
lea r14d, [r11 + 0x14]
xor dword [r9], edx
add r15, rbp
add r12, rbp
add r14, rbp
mov edx, dword [rsp + 0x304]
xor dword [r15], edx
lea edx, [r11 + 8]
lea r13d, [r11 + 0x18]
lea rdi, [rbp + rdx]
mov edx, dword [rsp + 0x308]
add r13, rbp
lea r10d, [r11 + 0x1c]
xor dword [rdi], edx
lea edx, [r11 + 0xc]
add r10, rbp
mov rbx, r11
lea rsi, [rbp + rdx]
mov edx, dword [rsp + 0x30c]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], rsi
xor dword [rsi], edx
mov edx, dword [rsp + 0x310]
xor dword [r12], edx
mov edx, dword [rsp + 0x314]
xor dword [r14], edx
mov edx, dword [rsp + 0x318]
xor dword [r13], edx
mov edx, dword [rsp + 0x31c]
xor dword [r10], edx
and eax, 0xe0
jne 0x54cb94
lea edx, [r11 + 0x100]
add rdx, rbp
cmp r11d, 0x20
ja 0x54ccf1
mov edi, 0x20
sub edi, r11d
mov eax, edi
mov dword [rsp + 0x48], edi
and eax, 3
shr edi, 2
mov ecx, edi
je 0x54cb50
mov r8d, ecx
mov esi, 4
shl r8, 2
test ecx, ecx
cmove r8, rsi
mov ecx, r8d
cmp r8d, 8
jae 0x54cd03
and r8d, 4
jne 0x54d429
test ecx, ecx
je 0x54cb50
movzx r8d, byte [r9]
mov byte [rdx], r8b
test cl, 2
jne 0x54d43e
nop
test eax, eax
je 0x54cb94
mov edi, dword [rsp + 0x48]
mov ecx, edi
sub ecx, eax
cmp ecx, edi
jae 0x54cb94
lea rsi, [rdx + rcx]
dec eax
lea rdx, [r9 + rcx]
mov qword [rsp + 0x58], r10
lea r8, [rax + 1]
mov rcx, rsi
mov qword [rsp + 0x50], r11
mov qword [rsp + 0x48], r9
call sub.msvcrt.dll_memcpy
mov r9, qword [rsp + 0x48]
mov r11, qword [rsp + 0x50]
mov r10, qword [rsp + 0x58]
mov esi, 0x100
sub esi, ebx
cmp esi, 0x1f
ja 0x54c980
lea edi, [rbx - 0xe0]
mov eax, edi
shr eax, 2
je 0x54cbe9
mov eax, eax
lea rdx, [rsp + 0x2e0]
mov rcx, rbp
mov qword [rsp + 0x58], r10
lea r8, [rax*4]
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x48], r11
call sub.msvcrt.dll_memmove
mov r11, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x58]
mov eax, edi
and eax, 3
je 0x54c980
mov edx, edi
sub edx, eax
cmp edi, edx
jbe 0x54c980
sub eax, edi
lea rcx, [rbp + rdx]
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x50], r9
lea r8d, [rbx + rax - 0xe1]
lea rax, [rsp + rdx + 0x2e0]
mov qword [rsp + 0x48], r11
inc r8
mov rdx, rax
call sub.msvcrt.dll_memmove
dec dword [rsp + 0x20]
mov r11, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x58]
jne 0x54c98a
mov eax, 0xff
mov r11, r14
lea edi, [rbx - 0xe0]
mov r14, r10
sub eax, ebx
mov r10, r15
lea r15d, [rbx - 0xe1]
mov dword [rsp + 0x30], eax
cmp esi, 0x1f
jbe 0x54cd38
lea rdx, [rsp + 0xa4]
mov rax, r9
sub rax, rdx
cmp rax, 8
jbe 0x54d3ca
vmovdqu xmm4, xmmword [r9]
vpxor xmm0, xmm4, xmmword [rsp + 0xa0]
vmovdqu xmmword [r9], xmm0
vmovdqu xmm5, xmmword [r12]
vpxor xmm0, xmm5, xmmword [rsp + 0xb0]
vmovdqu xmmword [r12], xmm0
vmovdqu xmm4, xmmword [r9]
mov rax, qword [rsp + 0x380]
mov rbx, qword [rsp + 0x380]
mov rdx, qword [r9 + 0x18]
vmovdqu xmmword [rax], xmm4
mov rax, qword [r9 + 0x10]
mov qword [rbx + 0x18], rdx
mov qword [rbx + 0x10], rax
add rsp, 0x328
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 8
mov dword [rsp + 0x48], 0x20
jmp 0x54cb12
mov rcx, qword [r9]
lea rdi, [rdx + 8]
and rdi, 0xfffffffffffffff8
mov qword [rdx], rcx
mov ecx, r8d
mov rsi, qword [r9 + rcx - 8]
mov qword [rdx + rcx - 8], rsi
mov rcx, rdx
mov rsi, r9
sub rcx, rdi
sub rsi, rcx
add ecx, r8d
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x54cb50
mov edx, esi
shr edx, 2
je 0x54cdd0
lea rcx, [rsp + 0xa4]
mov rax, r9
sub rax, rcx
cmp rax, 8
jbe 0x54d44f
cmp edx, 1
je 0x54d44f
lea eax, [rdx - 1]
cmp eax, 2
jbe 0x54d524
vmovdqu xmm4, xmmword [r9]
vpxor xmm0, xmm4, xmmword [rsp + 0xa0]
vmovdqu xmmword [r9], xmm0
cmp edx, 4
je 0x54cdd0
lea ecx, [rdx - 4]
cmp edx, 5
je 0x54d52d
mov eax, 4
mov r8d, eax
lea r10d, [rax + 0x10]
add eax, 2
lea r8, [r9 + r8*4]
vmovq xmm1, qword [rsp + r10*4 + 0x60]
vmovq xmm0, qword [r8]
vpxor xmm0, xmm0, xmm1
vmovq qword [r8], xmm0
cmp ecx, 2
je 0x54cdd0
shl rax, 2
mov ecx, dword [rsp + rax + 0xa0]
xor dword [r9 + rax], ecx
mov eax, esi
and eax, 3
mov dword [rsp + 0x38], eax
je 0x54d342
mov r13d, esi
sub r13d, dword [rsp + 0x38]
cmp esi, r13d
jbe 0x54d342
lea r12d, [rbx + rax - 0x100]
mov eax, dword [rsp + 0x30]
mov ecx, r13d
lea r11, [rsp + 0x60]
lea r10, [rsp + rcx + 0xa1]
lea r14d, [r12 + rax]
lea rax, [r9 + rcx]
mov r8, rax
sub r8, r10
cmp r8, 0xe
jbe 0x54d2ff
cmp r14d, 6
jbe 0x54d2ff
add r12d, esi
cmp r14d, 0xe
jbe 0x54d500
vmovdqu xmm5, xmmword [rsp + rcx + 0xa0]
mov r8d, r12d
vpxor xmm0, xmm5, xmmword [rax]
and r8d, 0xfffffff0
vmovdqu xmmword [rax], xmm0
lea eax, [r13 + r8]
cmp r8d, r12d
je 0x54cf7a
mov r10d, dword [rsp + 0x30]
sub r12d, r8d
sub r10d, eax
cmp r10d, 6
jbe 0x54cead
lea r14, [rsp + 0x320]
lea r10, [rcx + r8]
add r8, r14
add r10, r9
vmovq xmm0, qword [rcx + r8 - 0x280]
mov ecx, r12d
vmovq xmm1, qword [r10]
vpxor xmm0, xmm0, xmm1
and ecx, 0xfffffff8
vmovq qword [r10], xmm0
add eax, ecx
cmp ecx, r12d
je 0x54cf7a
mov ecx, eax
lea r8, [r9 + rcx]
movzx ecx, byte [rsp + rcx + 0xa0]
movzx r10d, byte [r8]
xor ecx, r10d
mov byte [r8], cl
lea ecx, [rax + 1]
cmp esi, ecx
jbe 0x54cf7a
lea r8, [r9 + rcx]
movzx ecx, byte [rsp + rcx + 0xa0]
movzx r10d, byte [r8]
xor ecx, r10d
mov byte [r8], cl
lea ecx, [rax + 2]
cmp esi, ecx
jbe 0x54cf7a
lea r8, [r9 + rcx]
movzx ecx, byte [rsp + rcx + 0xa0]
movzx r10d, byte [r8]
xor ecx, r10d
mov byte [r8], cl
lea ecx, [rax + 3]
cmp esi, ecx
jbe 0x54cf7a
lea r8, [r9 + rcx]
movzx ecx, byte [rsp + rcx + 0xa0]
movzx r10d, byte [r8]
xor ecx, r10d
mov byte [r8], cl
lea ecx, [rax + 4]
cmp esi, ecx
jbe 0x54cf7a
lea r8, [r9 + rcx]
movzx ecx, byte [rsp + rcx + 0xa0]
movzx r10d, byte [r8]
xor ecx, r10d
mov byte [r8], cl
lea ecx, [rax + 5]
cmp esi, ecx
jbe 0x54cf7a
lea r8, [r9 + rcx]
movzx ecx, byte [rsp + rcx + 0xa0]
add eax, 6
movzx r10d, byte [r8]
xor ecx, r10d
mov byte [r8], cl
cmp esi, eax
jbe 0x54cf7a
lea rcx, [r9 + rax]
movzx eax, byte [rsp + rax + 0xa0]
movzx r8d, byte [rcx]
xor eax, r8d
mov byte [rcx], al
mov rax, qword [rsp + 0x28]
mov ecx, esi
mov r14d, edi
mov qword [rsp + 0x40], rcx
add rax, rcx
shr r14d, 2
je 0x54d056
cmp r14d, 1
je 0x54d4da
lea ecx, [r14 - 1]
cmp ecx, 2
jbe 0x54d537
mov r12d, edi
mov r8d, 0x140
mov rcx, rbp
shr r12d, 4
sub r8d, ebx
lea r10d, [r12 - 1]
add r8, r11
shl r10, 4
lea r10, [rsp + r10 + 0x1f0]
vmovdqu xmm4, xmmword [r8]
add rcx, 0x10
add r8, 0x10
vpxor xmm0, xmm4, xmmword [rcx - 0x10]
vmovdqu xmmword [rcx - 0x10], xmm0
cmp rcx, r10
jne 0x54cfd4
lea ecx, [r12*4]
cmp ecx, r14d
je 0x54d056
mov r12d, r14d
sub r12d, ecx
cmp r12d, 1
je 0x54d049
mov r13, qword [rsp + 0x40]
lea r8d, [rcx + 0x60]
lea r10d, [rcx + 0x10]
lea r8, [r11 + r8*4]
lea r10, [rsp + r10*4 + 0x320]
vmovq xmm0, qword [r8]
vmovq xmm1, qword [r13 + r10 - 0x2c0]
vpxor xmm0, xmm0, xmm1
vmovq qword [r8], xmm0
mov r8d, r12d
and r8d, 0xfffffffe
add ecx, r8d
cmp r8d, r12d
je 0x54d056
shl rcx, 2
mov r8d, dword [rax + rcx]
xor dword [rbp + rcx], r8d
mov r12d, edi
and r12d, 3
je 0x54d24f
mov r10d, edi
sub r10d, r12d
mov dword [rsp + 0x28], r10d
cmp r10d, edi
jae 0x54d24f
mov ecx, r12d
mov r8d, r10d
sub ecx, edi
add ecx, r15d
cmp ecx, 6
jbe 0x54d321
cmp ecx, 0xe
jbe 0x54d50b
mov r10d, 0x140
lea rcx, [r8 + 0x180]
mov qword [rsp + 0x48], rax
lea r13, [r11 + r8 + 0x180]
sub r10d, ebx
mov eax, dword [rsp + 0x20]
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x20], edx
add r10, r8
xor ecx, ecx
add r10, r11
vmovdqu xmm5, xmmword [r13 + rcx]
inc eax
mov edx, 0x10000000
vpxor xmm0, xmm5, xmmword [r10 + rcx]
vmovdqu xmmword [r13 + rcx], xmm0
add rcx, 0x10
cmp edx, eax
ja 0x54d0c6
mov ecx, 0x10000000
mov edx, dword [rsp + 0x20]
shl ecx, 4
mov rax, qword [rsp + 0x48]
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x28]
test r12d, r12d
je 0x54d24f
mov r10d, edi
sub r10d, ecx
mov dword [rsp + 0x48], r10d
mov r10d, r15d
sub r10d, ecx
cmp r10d, 6
jbe 0x54d186
mov r10d, dword [rsp + 0x20]
mov r13, qword [rsp + 0x50]
add r13, r10
add r11, r13
mov r13d, 0x140
mov qword [rsp + 0x20], r11
mov r11d, r13d
lea r13, [rsp + 0x320]
add r10, r13
sub r11d, ebx
add r10, r8
vmovq xmm0, qword [r11 + r10 - 0x2c0]
mov r11, qword [rsp + 0x20]
vmovq xmm1, qword [r11]
vpxor xmm0, xmm0, xmm1
vmovq qword [r11], xmm0
mov r11d, dword [rsp + 0x48]
mov r8d, r11d
and r8d, 0xfffffff8
add ecx, r8d
cmp r8d, r11d
je 0x54d24f
mov r8d, ecx
lea r10, [rbp + r8]
movzx r8d, byte [rax + r8]
movzx r11d, byte [r10]
xor r8d, r11d
mov byte [r10], r8b
lea r8d, [rcx + 1]
cmp r8d, edi
jae 0x54d24f
lea r10, [rbp + r8]
movzx r8d, byte [rax + r8]
movzx r11d, byte [r10]
xor r8d, r11d
mov byte [r10], r8b
lea r8d, [rcx + 2]
cmp r8d, edi
jae 0x54d24f
lea r10, [rbp + r8]
movzx r8d, byte [rax + r8]
movzx r11d, byte [r10]
xor r8d, r11d
mov byte [r10], r8b
lea r8d, [rcx + 3]
cmp edi, r8d
jbe 0x54d24f
lea r10, [rbp + r8]
movzx r8d, byte [rax + r8]
movzx r11d, byte [r10]
xor r8d, r11d
mov byte [r10], r8b
lea r8d, [rcx + 4]
cmp edi, r8d
jbe 0x54d24f
lea r10, [rbp + r8]
movzx r8d, byte [rax + r8]
movzx r11d, byte [r10]
xor r8d, r11d
mov byte [r10], r8b
lea r8d, [rcx + 5]
cmp edi, r8d
jbe 0x54d24f
lea r10, [rbp + r8]
movzx r8d, byte [rax + r8]
add ecx, 6
movzx r11d, byte [r10]
xor r8d, r11d
mov byte [r10], r8b
cmp edi, ecx
jbe 0x54d24f
lea r8, [rbp + rcx]
movzx eax, byte [rax + rcx]
movzx ecx, byte [r8]
xor eax, ecx
mov byte [r8], al
test edx, edx
je 0x54d272
mov eax, edx
shl rax, 2
cmp eax, 8
jae 0x54d34c
test al, 4
jne 0x54d541
test eax, eax
jne 0x54d3b7
mov eax, dword [rsp + 0x38]
test eax, eax
je 0x54d2aa
mov eax, dword [rsp + 0x38]
mov edx, esi
sub edx, eax
cmp esi, edx
jbe 0x54d2aa
lea eax, [rbx + rax - 0x100]
mov ebx, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x380]
add eax, ebx
add rcx, rdx
add rdx, r9
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x40]
add rcx, qword [rsp + 0x380]
test r14d, r14d
je 0x54d2ce
mov r8d, r14d
mov rdx, rbp
shl r8, 2
call sub.msvcrt.dll_memcpy
mov rcx, rax
test r12d, r12d
je 0x54ccdd
mov edx, edi
sub edx, r12d
cmp edx, edi
jae 0x54ccdd
sub r12d, edi
add rcx, rdx
add rdx, rbp
lea eax, [r12 + r15]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
jmp 0x54ccdd
mov r14, qword [rsp + 0x28]
movzx eax, byte [r9 + rcx]
movzx r8d, byte [r14 + rcx]
xor eax, r8d
mov byte [r9 + rcx], al
inc rcx
cmp esi, ecx
ja 0x54d2ff
jmp 0x54cf7a
lea r10, [rbp + r8]
movzx r11d, byte [rax + r8]
inc r8
movzx ecx, byte [r10]
xor ecx, r11d
mov byte [r10], cl
cmp edi, r8d
ja 0x54d321
jmp 0x54d24f
lea r11, [rsp + 0x60]
jmp 0x54cf7a
mov rdx, qword [r9]
mov rcx, qword [rsp + 0x380]
mov r10, r9
mov qword [rcx], rdx
mov rdx, qword [r9 + rax - 8]
mov rcx, qword [rsp + 0x380]
mov qword [rcx + rax - 8], rdx
mov rcx, qword [rsp + 0x380]
mov rdx, qword [rsp + 0x380]
add rcx, 8
and rcx, 0xfffffffffffffff8
sub rdx, rcx
add eax, edx
sub r10, rdx
and eax, 0xfffffff8
cmp eax, 8
jb 0x54d272
and eax, 0xfffffff8
xor edx, edx
mov r8d, edx
add edx, 8
mov r11, qword [r10 + r8]
mov qword [rcx + r8], r11
cmp edx, eax
jb 0x54d3a0
jmp 0x54d272
movzx eax, byte [r9]
mov rcx, qword [rsp + 0x380]
mov byte [rcx], al
jmp 0x54d272
mov rbx, qword [rsp + 0x40]
mov eax, dword [rsp + 0xa0]
xor dword [r9], eax
mov eax, dword [rsp + 0xa4]
xor dword [r10], eax
mov eax, dword [rsp + 0xa8]
xor dword [rbx], eax
mov rbx, qword [rsp + 0x38]
mov eax, dword [rsp + 0xac]
xor dword [rbx], eax
mov eax, dword [rsp + 0xb0]
xor dword [r12], eax
mov eax, dword [rsp + 0xb4]
xor dword [r11], eax
mov eax, dword [rsp + 0xb8]
xor dword [r13], eax
mov eax, dword [rsp + 0xbc]
xor dword [r14], eax
jmp 0x54ccb4
mov r8d, dword [r9]
mov dword [rdx], r8d
mov r8d, dword [r9 + rcx - 4]
mov dword [rdx + rcx - 4], r8d
jmp 0x54cb50
movzx r8d, word [r9 + rcx - 2]
mov word [rdx + rcx - 2], r8w
jmp 0x54cb50
mov eax, dword [rsp + 0xa0]
xor dword [r9], eax
cmp edx, 1
je 0x54cdd0
mov eax, dword [rsp + 0xa4]
xor dword [r10], eax
cmp edx, 2
je 0x54cdd0
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0xa8]
xor dword [rcx], eax
cmp edx, 3
je 0x54cdd0
mov rcx, qword [rsp + 0x38]
mov eax, dword [rsp + 0xac]
xor dword [rcx], eax
cmp edx, 4
je 0x54cdd0
mov eax, dword [rsp + 0xb0]
xor dword [r12], eax
cmp edx, 5
je 0x54cdd0
mov eax, dword [rsp + 0xb4]
xor dword [r11], eax
cmp edx, 7
jne 0x54cdd0
mov eax, dword [rsp + 0xb8]
xor dword [r13], eax
jmp 0x54cdd0
mov rcx, rbp
mov r8, rax
lea r10, [rsp + 0x1e4]
mov r12d, dword [r8]
xor dword [rcx], r12d
add rcx, 4
add r8, 4
cmp rcx, r10
jne 0x54d4e8
jmp 0x54d056
mov eax, r13d
xor r8d, r8d
jmp 0x54ce72
mov ecx, r10d
lea r10, [r8 + 0x180]
mov dword [rsp + 0x48], r12d
mov qword [rsp + 0x50], r10
jmp 0x54d122
mov ecx, edx
xor eax, eax
jmp 0x54cd99
mov eax, 4
jmp 0x54cdc1
xor ecx, ecx
mov r12d, r14d
jmp 0x54d009
mov edx, dword [r9]
mov rcx, qword [rsp + 0x380]
mov dword [rcx], edx
mov edx, dword [r9 + rax - 4]
mov rcx, qword [rsp + 0x380]
mov dword [rcx + rax - 4], edx
jmp 0x54d272