Function at 0x5014e0
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
movups xmmword [rsp + 0x300], xmm6
movups xmmword [rsp + 0x310], xmm7
pxor xmm6, xmm6
mov r12, qword [rcx]
mov rsi, qword [rcx + 0x10]
mov r9, qword [rcx + 0x38]
mov r13, qword [rcx + 8]
mov rdi, qword [rcx + 0x18]
mov r10, qword [rcx + 0x20]
mov r11, qword [rcx + 0x28]
mov r14, qword [rcx + 0x40]
mov r15, qword [rcx + 0x48]
mov qword [rsp + 0x380], 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 + 0xb0], r8
mov qword [rsp + 0xb8], r9
mov qword [rsp + 0xc0], r14
mov qword [rsp + 0xd0], r12
mov qword [rsp + 0xd8], r13
mov qword [rsp + 0xe0], rsi
mov qword [rsp + 0x100], r8
mov qword [rsp + 0x108], r9
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x120], r12
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0xa0], r10
mov qword [rsp + 0xa8], r11
mov qword [rsp + 0xc8], r15
mov qword [rsp + 0xe8], rdi
mov qword [rsp + 0xf0], r10
mov qword [rsp + 0xf8], r11
mov qword [rsp + 0x118], r15
mov qword [rsp + 0x128], r13
movdqu xmm7, xmmword [rcx]
mov rbx, qword [rdx + 0x18]
mov rcx, qword [rdx + 0x10]
mov qword [rsp + 0x150], r8
movups xmmword [rsp + 0x170], xmm7
movdqu xmm7, xmmword [rdx + 0x20]
mov qword [rsp + 0x158], r9
movups xmmword [rsp + 0x1e0], xmm7
movdqu xmm7, xmmword [rdx + 0x30]
mov qword [rsp + 0x1b0], r8
mov r8, qword [rdx]
mov qword [rsp + 0x1b8], r9
mov r9, qword [rdx + 8]
movups xmmword [rsp + 0x1f0], xmm7
movdqu xmm7, xmmword [rdx + 0x40]
mov qword [rsp + 0x130], rsi
mov qword [rsp + 0x160], r14
mov r14d, 0x20
mov qword [rsp + 0x180], r12
lea r12, [rsp + 0x80]
mov qword [rsp + 0x188], r13
lea r13, [rsp + 0x2e0]
mov qword [rsp + 0x190], rsi
xor esi, esi
movups xmmword [rsp + 0x200], xmm7
mov qword [rsp + 0x138], rdi
mov qword [rsp + 0x140], r10
mov qword [rsp + 0x148], r11
mov qword [rsp + 0x168], r15
mov qword [rsp + 0x198], rdi
mov qword [rsp + 0x1a0], r10
mov qword [rsp + 0x1a8], r11
mov qword [rsp + 0x1c0], r8
mov qword [rsp + 0x1c8], r9
mov qword [rsp + 0x1d0], rcx
mov qword [rsp + 0x1d8], rbx
movdqu xmm5, xmmword [rdx + 0x50]
movdqu xmm7, xmmword [rdx + 0x60]
mov qword [rsp + 0x2c0], r8
movups xmmword [rsp + 0x210], xmm5
movdqu xmm5, xmmword [rdx + 0x70]
movups xmmword [rsp + 0x220], xmm7
movdqu xmm7, xmmword [rdx + 0x80]
movups xmmword [rsp + 0x230], xmm5
movdqu xmm5, xmmword [rdx + 0x90]
movups xmmword [rsp + 0x240], xmm7
movdqu xmm7, xmmword [rdx + 0xa0]
movups xmmword [rsp + 0x250], xmm5
movdqu xmm5, xmmword [rdx + 0xb0]
movups xmmword [rsp + 0x260], xmm7
movdqu xmm7, xmmword [rdx + 0xc0]
movups xmmword [rsp + 0x270], xmm5
movdqu xmm5, xmmword [rdx + 0xd0]
movups xmmword [rsp + 0x280], xmm7
movdqu xmm7, xmmword [rdx + 0xe0]
movups xmmword [rsp + 0x290], xmm5
movdqu xmm5, xmmword [rdx + 0xf0]
movups xmmword [rsp + 0x2a0], xmm7
pxor xmm7, xmm7
mov qword [rsp + 0x2c8], r9
mov qword [rsp + 0x2d0], rcx
mov qword [rsp + 0x2d8], rbx
movups xmmword [rsp + 0x2b0], xmm5
jmp 0x5017c2
sub r14d, 1
je 0x5019ec
lea rdx, [rbp + rsi]
lea rcx, [r12 + rsi]
mov r8, r13
call fcn.005012e0
mov edx, dword [rsp + 0x2e0]
movdqu xmm3, xmmword [rsp + 0x2e0]
movdqu xmm2, xmmword [rsp + 0x2f0]
movdqu xmm1, xmm3
punpckhbw xmm3, xmm7
punpcklbw xmm1, xmm7
movdqu xmm4, xmm2
punpckhbw xmm2, xmm7
movdqu xmm5, xmm1
movdqu xmm0, xmm1
movdqu xmm1, xmm3
punpcklbw xmm4, xmm7
punpcklwd xmm1, xmm6
punpckhwd xmm3, xmm6
paddd xmm3, xmm1
movdqu xmm1, xmm4
punpcklwd xmm5, xmm6
punpcklwd xmm1, xmm6
punpckhwd xmm0, xmm6
punpckhwd xmm4, xmm6
paddd xmm4, xmm1
paddd xmm0, xmm5
movdqu xmm1, xmm2
punpcklwd xmm1, xmm6
paddd xmm0, xmm3
punpckhwd xmm2, xmm6
paddd xmm2, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm2
movdqu xmm1, xmm0
psrldq xmm1, 8
paddd xmm0, xmm1
movdqu xmm1, xmm0
psrldq xmm1, 4
paddd xmm0, xmm1
movd eax, xmm0
movzx esi, al
lea rbx, [rbp + rsi]
mov rdi, rsi
xor dword [rbx], edx
mov edx, dword [rsp + 0x2e4]
xor dword [rbx + 4], edx
mov edx, dword [rsp + 0x2e8]
xor dword [rbx + 8], edx
mov edx, dword [rsp + 0x2ec]
xor dword [rbx + 0xc], edx
mov edx, dword [rsp + 0x2f0]
xor dword [rbx + 0x10], edx
mov edx, dword [rsp + 0x2f4]
xor dword [rbx + 0x14], edx
mov edx, dword [rsp + 0x2f8]
xor dword [rbx + 0x18], edx
mov edx, dword [rsp + 0x2fc]
xor dword [rbx + 0x1c], edx
and eax, 0xe0
jne 0x501960
lea edx, [rsi + 0x100]
add rdx, rbp
cmp esi, 0x20
ja 0x501a7d
mov r9d, 0x20
sub r9d, esi
mov eax, r9d
mov ecx, r9d
and eax, 3
shr ecx, 2
je 0x50193b
lea r8d, [rcx - 1]
test ecx, ecx
mov ecx, 4
lea r8, [r8*4 + 4]
cmove r8, rcx
mov ecx, r8d
cmp r8d, 8
jae 0x501a8d
and r8d, 4
jne 0x502182
test ecx, ecx
je 0x50193b
movzx r8d, byte [rbx]
mov byte [rdx], r8b
test cl, 2
jne 0x502266
test eax, eax
je 0x501960
mov ecx, r9d
sub ecx, eax
cmp ecx, r9d
jae 0x501960
mov r8d, ecx
sub eax, 1
lea rcx, [rdx + r8]
lea rdx, [rbx + r8]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov r15d, 0x100
sub r15d, edi
cmp r15d, 0x1f
ja 0x5017b8
lea r9d, [rdi - 0xe0]
mov eax, r9d
shr eax, 2
je 0x5019a7
sub eax, 1
lea rdx, [rsp + 0x2c0]
mov rcx, rbp
mov dword [rsp + 0x20], r9d
lea r8, [rax*4 + 4]
call sub.msvcrt.dll_memmove
mov r9d, dword [rsp + 0x20]
mov edx, r9d
and edx, 3
je 0x5017b8
mov eax, r9d
sub eax, edx
cmp r9d, eax
jbe 0x5017b8
sub edx, r9d
lea rcx, [rbp + rax]
lea r8d, [rdi + rdx - 0xe1]
lea rdx, [rsp + rax + 0x2c0]
add r8, 1
call sub.msvcrt.dll_memmove
sub r14d, 1
jne 0x5017c2
cmp r15d, 0x1f
jbe 0x501aea
lea rax, [rbx + 0x10]
cmp r12, rax
jae 0x501a10
lea rax, [rsp + 0x90]
cmp rbx, rax
jb 0x502197
movdqu xmm0, xmmword [rbx]
pxor xmm0, xmmword [rsp + 0x80]
movups xmmword [rbx], xmm0
movdqu xmm0, xmmword [rbx + 0x10]
pxor xmm0, xmmword [rsp + 0x90]
movups xmmword [rbx + 0x10], xmm0
mov rax, qword [rsp + 0x380]
movdqu xmm7, xmmword [rbx]
mov rdi, qword [rsp + 0x380]
mov rdx, qword [rbx + 0x18]
movups xmmword [rax], xmm7
mov rax, qword [rbx + 0x10]
mov qword [rdi + 0x18], rdx
mov qword [rdi + 0x10], rax
movups xmm6, xmmword [rsp + 0x300]
movups xmm7, xmmword [rsp + 0x310]
add rsp, 0x328
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 8
mov r9d, 0x20
jmp 0x5018f9
mov rcx, qword [rbx]
lea r11, [rdx + 8]
mov r15, rbx
and r11, 0xfffffffffffffff8
mov qword [rdx], rcx
mov ecx, r8d
mov r10, qword [rbx + rcx - 8]
mov qword [rdx + rcx - 8], r10
mov rcx, rdx
sub rcx, r11
sub r15, rcx
add ecx, r8d
and ecx, 0xfffffff8
cmp ecx, 8
jb 0x50193b
mov dword [rsp + 0x20], eax
and ecx, 0xfffffff8
xor r8d, r8d
mov r10d, r8d
add r8d, 8
mov rax, qword [r15 + r10]
mov qword [r11 + r10], rax
cmp r8d, ecx
jb 0x501acd
mov eax, dword [rsp + 0x20]
jmp 0x50193b
mov edx, r15d
shr edx, 2
je 0x501b5f
lea rax, [rbx + 0x10]
cmp r12, rax
lea rax, [rsp + 0x90]
setae cl
cmp rbx, rax
setae al
or cl, al
je 0x5021eb
lea eax, [rdx - 1]
cmp eax, 2
jbe 0x5021eb
movdqu xmm0, xmmword [rbx]
pxor xmm0, xmmword [rsp + 0x80]
movups xmmword [rbx], xmm0
cmp edx, 4
je 0x501b5f
mov eax, dword [rsp + 0x90]
xor dword [rbx + 0x10], eax
cmp edx, 5
je 0x501b5f
mov eax, dword [rsp + 0x94]
xor dword [rbx + 0x14], eax
cmp edx, 7
jne 0x50229a
mov eax, dword [rsp + 0x98]
xor dword [rbx + 0x18], eax
mov eax, r15d
and eax, 3
mov dword [rsp + 0x2c], eax
je 0x5020f9
mov eax, r15d
sub eax, dword [rsp + 0x2c]
cmp r15d, eax
jbe 0x5020f9
mov r8d, eax
lea rcx, [rsp + 0x40]
lea r9, [rbx + r8 + 0x10]
lea r11, [rsp + r8 + 0x80]
cmp r11, r9
lea r10, [rbx + r8]
lea r9, [rsp + r8 + 0x90]
setae sil
cmp r10, r9
setae r9b
or sil, r9b
je 0x5020cc
mov esi, dword [rsp + 0x2c]
lea r9d, [rdi + rsi - 0x100]
sub esi, 1
cmp esi, 0xe
jbe 0x5020cc
movdqu xmm0, xmmword [r11]
movdqu xmm5, xmmword [r10]
add r9d, r15d
mov r8d, r9d
pxor xmm0, xmm5
and r8d, 0xfffffff0
movups xmmword [r10], xmm0
add eax, r8d
cmp r9d, r8d
je 0x501d5a
mov r8d, eax
movzx r9d, byte [rsp + r8 + 0x80]
xor byte [rbx + r8], r9b
lea r8d, [rax + 1]
cmp r15d, r8d
jbe 0x501d5a
movzx r9d, byte [rsp + r8 + 0x80]
xor byte [rbx + r8], r9b
lea r8d, [rax + 2]
cmp r15d, r8d
jbe 0x501d5a
movzx r9d, byte [rsp + r8 + 0x80]
xor byte [rbx + r8], r9b
lea r8d, [rax + 3]
cmp r15d, r8d
jbe 0x501d5a
movzx r9d, byte [rsp + r8 + 0x80]
xor byte [rbx + r8], r9b
lea r8d, [rax + 4]
cmp r15d, r8d
jbe 0x501d5a
movzx r9d, byte [rsp + r8 + 0x80]
xor byte [rbx + r8], r9b
lea r8d, [rax + 5]
cmp r15d, r8d
jbe 0x501d5a
movzx r9d, byte [rsp + r8 + 0x80]
xor byte [rbx + r8], r9b
lea r8d, [rax + 6]
cmp r15d, r8d
jbe 0x501d5a
movzx r9d, byte [rsp + r8 + 0x80]
xor byte [rbx + r8], r9b
lea r8d, [rax + 7]
cmp r15d, r8d
jbe 0x501d5a
movzx r9d, byte [rsp + r8 + 0x80]
xor byte [rbx + r8], r9b
lea r8d, [rax + 8]
cmp r15d, r8d
jbe 0x501d5a
movzx r9d, byte [rsp + r8 + 0x80]
xor byte [rbx + r8], r9b
lea r8d, [rax + 9]
cmp r15d, r8d
jbe 0x501d5a
movzx r9d, byte [rsp + r8 + 0x80]
xor byte [rbx + r8], r9b
lea r8d, [rax + 0xa]
cmp r15d, r8d
jbe 0x501d5a
movzx r9d, byte [rsp + r8 + 0x80]
xor byte [rbx + r8], r9b
lea r8d, [rax + 0xb]
cmp r15d, r8d
jbe 0x501d5a
movzx r9d, byte [rsp + r8 + 0x80]
xor byte [rbx + r8], r9b
lea r8d, [rax + 0xc]
cmp r15d, r8d
jbe 0x501d5a
movzx r9d, byte [rsp + r8 + 0x80]
xor byte [rbx + r8], r9b
lea r8d, [rax + 0xd]
cmp r15d, r8d
jbe 0x501d5a
movzx r9d, byte [rsp + r8 + 0x80]
add eax, 0xe
xor byte [rbx + r8], r9b
cmp r15d, eax
jbe 0x501d5a
movzx r8d, byte [rsp + rax + 0x80]
xor byte [rbx + rax], r8b
lea esi, [rdi - 0xe0]
mov r13d, r15d
mov r10d, esi
add r12, r13
shr r10d, 2
je 0x501e2b
lea rax, [rcx + r13 + 0x40]
lea r11, [rsp + 0x1d0]
mov qword [rsp + 0x20], rax
lea rax, [rcx + r13 + 0x50]
lea r9d, [r10 - 1]
cmp rbp, rax
setae byte [rsp + 0x30]
cmp qword [rsp + 0x20], r11
movzx r8d, byte [rsp + 0x30]
setae al
or r8b, al
je 0x502240
cmp r9d, 2
jbe 0x502240
mov r9d, esi
mov rax, rbp
lea r8, [rcx + r13 + 0x40]
shr r9d, 4
mov dword [rsp + 0x20], r9d
sub r9d, 1
shl r9, 4
add r9, r11
movdqu xmm0, xmmword [r8]
pxor xmm0, xmmword [rax]
add rax, 0x10
add r8, 0x10
movups xmmword [rax - 0x10], xmm0
cmp rax, r9
jne 0x501dd6
mov eax, dword [rsp + 0x20]
shl eax, 2
cmp eax, r10d
je 0x501e2b
mov r8d, eax
mov r9d, dword [r12 + r8*4]
xor dword [rbp + r8*4], r9d
lea r8d, [rax + 1]
cmp r10d, r8d
jbe 0x501e2b
add eax, 2
mov r9d, dword [r12 + r8*4]
xor dword [rbp + r8*4], r9d
cmp r10d, eax
jbe 0x501e2b
mov r8d, dword [r12 + rax*4]
xor dword [rbp + rax*4], r8d
mov eax, esi
and eax, 3
mov dword [rsp + 0x20], eax
je 0x50200b
mov r11d, esi
sub r11d, dword [rsp + 0x20]
cmp esi, r11d
jbe 0x50200b
mov eax, r11d
lea r8, [r13 + rax + 0x40]
lea r9, [rax + 0x180]
mov qword [rsp + 0x30], r8
lea r8, [r13 + rax + 0x50]
cmp r9, r8
mov qword [rsp + 0x38], r9
lea r8, [rax + 0x190]
setge r9b
cmp r8, qword [rsp + 0x30]
setle r8b
or r9b, r8b
je 0x5020e3
mov r8d, dword [rsp + 0x20]
sub r8d, esi
lea r8d, [rdi + r8 - 0xe1]
cmp r8d, 0xe
jbe 0x5020e3
mov r8, qword [rsp + 0x38]
mov r9d, 0x10000000
xor eax, eax
add r8, rcx
add rcx, qword [rsp + 0x30]
movdqu xmm0, xmmword [r8 + rax]
movdqu xmm7, xmmword [rcx + rax]
add r14d, 1
pxor xmm0, xmm7
movups xmmword [r8 + rax], xmm0
add rax, 0x10
cmp r9d, r14d
ja 0x501eb8
mov ecx, dword [rsp + 0x20]
mov eax, r11d
test ecx, ecx
je 0x50200b
mov ecx, r11d
movzx r8d, byte [r12 + rcx]
xor byte [rbp + rcx], r8b
lea ecx, [r11 + 1]
cmp esi, ecx
jbe 0x50200b
movzx r8d, byte [r12 + rcx]
xor byte [rbp + rcx], r8b
lea ecx, [r11 + 2]
cmp esi, ecx
jbe 0x50200b
movzx r8d, byte [r12 + rcx]
xor byte [rbp + rcx], r8b
lea ecx, [r11 + 3]
cmp esi, ecx
jbe 0x50200b
movzx r8d, byte [r12 + rcx]
xor byte [rbp + rcx], r8b
lea ecx, [r11 + 4]
cmp esi, ecx
jbe 0x50200b
movzx r8d, byte [r12 + rcx]
xor byte [rbp + rcx], r8b
lea ecx, [r11 + 5]
cmp esi, ecx
jbe 0x50200b
movzx r8d, byte [r12 + rcx]
xor byte [rbp + rcx], r8b
lea ecx, [r11 + 6]
cmp esi, ecx
jbe 0x50200b
movzx r8d, byte [r12 + rcx]
xor byte [rbp + rcx], r8b
lea ecx, [r11 + 7]
cmp esi, ecx
jbe 0x50200b
movzx r8d, byte [r12 + rcx]
xor byte [rbp + rcx], r8b
lea ecx, [r11 + 8]
cmp esi, ecx
jbe 0x50200b
movzx r8d, byte [r12 + rcx]
xor byte [rbp + rcx], r8b
lea ecx, [r11 + 9]
cmp esi, ecx
jbe 0x50200b
movzx r8d, byte [r12 + rcx]
xor byte [rbp + rcx], r8b
lea ecx, [r11 + 0xa]
cmp esi, ecx
jbe 0x50200b
movzx r8d, byte [r12 + rcx]
xor byte [rbp + rcx], r8b
lea ecx, [r11 + 0xb]
cmp esi, ecx
jbe 0x50200b
movzx r8d, byte [r12 + rcx]
xor byte [rbp + rcx], r8b
lea ecx, [r11 + 0xc]
cmp esi, ecx
jbe 0x50200b
movzx r8d, byte [r12 + rcx]
xor byte [rbp + rcx], r8b
lea ecx, [r11 + 0xd]
cmp esi, ecx
jbe 0x50200b
add eax, 0xe
movzx r8d, byte [r12 + rcx]
xor byte [rbp + rcx], r8b
cmp esi, eax
jbe 0x50200b
movzx ecx, byte [r12 + rax]
xor byte [rbp + rax], cl
test edx, edx
je 0x502033
lea eax, [rdx - 1]
lea rax, [rax*4 + 4]
cmp eax, 8
jae 0x502103
test al, 4
jne 0x502277
test eax, eax
jne 0x502170
mov edx, dword [rsp + 0x2c]
test edx, edx
je 0x50206d
mov eax, dword [rsp + 0x2c]
mov edx, r15d
sub edx, eax
cmp r15d, edx
jbe 0x50206d
mov rcx, qword [rsp + 0x380]
sub eax, 1
mov dword [rsp + 0x2c], r10d
lea r8, [rax + 1]
add rcx, rdx
add rdx, rbx
call sub.msvcrt.dll_memcpy
mov r10d, dword [rsp + 0x2c]
add r13, qword [rsp + 0x380]
test r10d, r10d
je 0x502091
lea eax, [r10 - 1]
mov rdx, rbp
mov rcx, r13
lea r8, [rax*4 + 4]
call sub.msvcrt.dll_memcpy
mov eax, dword [rsp + 0x20]
test eax, eax
je 0x501a59
mov eax, dword [rsp + 0x20]
mov edx, esi
sub edx, eax
cmp esi, edx
jbe 0x501a59
sub eax, esi
lea rcx, [r13 + rdx]
add rdx, rbp
lea eax, [rdi + rax - 0xe1]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
jmp 0x501a59
movzx eax, byte [r12 + r8]
xor byte [rbx + r8], al
add r8, 1
cmp r15d, r8d
ja 0x5020cc
jmp 0x501d5a
movzx ecx, byte [r12 + rax]
xor byte [rbp + rax], cl
add rax, 1
cmp esi, eax
ja 0x5020e3
jmp 0x50200b
lea rcx, [rsp + 0x40]
jmp 0x501d5a
mov rdx, qword [rbx]
mov rcx, qword [rsp + 0x380]
mov r9, rbx
mov qword [rcx], rdx
mov edx, eax
mov r11, qword [rsp + 0x380]
mov rcx, qword [rbx + rdx - 8]
mov qword [r11 + rdx - 8], rcx
mov rcx, qword [rsp + 0x380]
mov rdx, qword [rsp + 0x380]
add rcx, 8
and rcx, 0xfffffffffffffff8
sub rdx, rcx
add eax, edx
sub r9, rdx
and eax, 0xfffffff8
cmp eax, 8
jb 0x502033
and eax, 0xfffffff8
xor edx, edx
mov r8d, edx
add edx, 8
mov r11, qword [r9 + r8]
mov qword [rcx + r8], r11
cmp edx, eax
jb 0x502159
jmp 0x502033
movzx eax, byte [rbx]
mov rcx, qword [rsp + 0x380]
mov byte [rcx], al
jmp 0x502033
mov r8d, dword [rbx]
mov dword [rdx], r8d
mov r8d, dword [rbx + rcx - 4]
mov dword [rdx + rcx - 4], r8d
jmp 0x50193b
mov eax, dword [rsp + 0x80]
xor dword [rbx], eax
mov eax, dword [rsp + 0x84]
xor dword [rbx + 4], eax
mov eax, dword [rsp + 0x88]
xor dword [rbx + 8], eax
mov eax, dword [rsp + 0x8c]
xor dword [rbx + 0xc], eax
mov eax, dword [rsp + 0x90]
xor dword [rbx + 0x10], eax
mov eax, dword [rsp + 0x94]
xor dword [rbx + 0x14], eax
mov eax, dword [rsp + 0x98]
xor dword [rbx + 0x18], eax
mov eax, dword [rsp + 0x9c]
xor dword [rbx + 0x1c], eax
jmp 0x501a32
mov eax, dword [rsp + 0x80]
xor dword [rbx], eax
cmp edx, 1
je 0x501b5f
mov eax, dword [rsp + 0x84]
xor dword [rbx + 4], eax
cmp edx, 2
je 0x501b5f
mov eax, dword [rsp + 0x88]
xor dword [rbx + 8], eax
cmp edx, 3
je 0x501b5f
mov eax, dword [rsp + 0x8c]
xor dword [rbx + 0xc], eax
cmp edx, 4
jne 0x501b33
jmp 0x501b5f
mov rax, rbp
mov r8, r12
lea r9, [rsp + r9*4 + 0x1c4]
mov r11d, dword [r8]
xor dword [rax], r11d
add rax, 4
add r8, 4
cmp r9, rax
jne 0x50224e
jmp 0x501e2b
movzx r8d, word [rbx + rcx - 2]
mov word [rdx + rcx - 2], r8w
jmp 0x50193b
mov edx, dword [rbx]
mov rcx, qword [rsp + 0x380]
mov eax, eax
mov dword [rcx], edx
mov edx, dword [rbx + rax - 4]
mov rcx, qword [rsp + 0x380]
mov dword [rcx + rax - 4], edx
jmp 0x502033
mov edx, 6
jmp 0x501b5f