Function at 0x45ca20
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x4e8
lea r15, [0x005c48a0]
lea rbx, [0x005c4ba0]
movdqu xmm0, xmmword [rcx]
pxor xmm0, xmmword [rdx]
movups xmmword [rsp + 0x4a0], xmm0
movdqu xmm0, xmmword [rcx + 0x10]
pxor xmm0, xmmword [rdx + 0x10]
mov r14, r8
mov r13, rdx
lea rdi, [rsp + 0x460]
movups xmmword [rsp + 0x4b0], xmm0
movdqu xmm0, xmmword [rcx + 0x20]
pxor xmm0, xmmword [rdx + 0x20]
movups xmmword [rsp + 0x4c0], xmm0
movdqu xmm0, xmmword [rcx + 0x30]
pxor xmm0, xmmword [rdx + 0x30]
lea rcx, [rsp + 0x4a0]
movups xmmword [rsp + 0x4d0], xmm0
call fcn.0045c6e0
movdqu xmm0, xmmword [r14]
pxor xmm0, xmmword [rsp + 0x4a0]
movups xmmword [rsp + 0x460], xmm0
movdqu xmm0, xmmword [r14 + 0x10]
pxor xmm0, xmmword [rsp + 0x4b0]
movups xmmword [rsp + 0x470], xmm0
movdqu xmm0, xmmword [r14 + 0x20]
pxor xmm0, xmmword [rsp + 0x4c0]
movups xmmword [rsp + 0x480], xmm0
movdqu xmm0, xmmword [r14 + 0x30]
pxor xmm0, xmmword [rsp + 0x4d0]
movups xmmword [rsp + 0x490], xmm0
nop dword [rax]
mov rcx, rdi
call fcn.0045c6e0
movdqu xmm5, xmmword [rsp + 0x4a0]
pxor xmm5, xmmword [r15]
movdqu xmm4, xmmword [rsp + 0x4b0]
pxor xmm4, xmmword [r15 + 0x10]
movups xmmword [rsp + 0x20], xmm5
movdqu xmm5, xmmword [rsp + 0x4c0]
pxor xmm5, xmmword [r15 + 0x20]
movups xmmword [rsp + 0x30], xmm4
movdqu xmm4, xmmword [rsp + 0x4d0]
pxor xmm4, xmmword [r15 + 0x30]
movups xmmword [rsp + 0x40], xmm5
movups xmmword [rsp + 0x50], xmm4
movdqu xmm5, xmmword [rsp + 0x50]
movzx eax, byte [rsp + 0x50]
movups xmmword [rsp + 0x450], xmm5
movzx ecx, byte [rsp + 0x458]
movups xmmword [rsp + 0x440], xmm5
movdqu xmm5, xmmword [rsp + 0x40]
mov r10, qword [rbx + rcx*8]
xor r10, qword [rbx + rax*8 + 0x800]
movups xmmword [rsp + 0x430], xmm5
movzx eax, byte [rsp + 0x438]
movups xmmword [rsp + 0x420], xmm5
movdqu xmm5, xmmword [rsp + 0x30]
xor r10, qword [rbx + rax*8 + 0x1000]
movzx eax, byte [rsp + 0x40]
movups xmmword [rsp + 0x410], xmm5
xor r10, qword [rbx + rax*8 + 0x1800]
movzx eax, byte [rsp + 0x418]
movups xmmword [rsp + 0x400], xmm5
xor r10, qword [rbx + rax*8 + 0x2000]
movzx eax, byte [rsp + 0x30]
xor r10, qword [rbx + rax*8 + 0x2800]
movdqu xmm5, xmmword [rsp + 0x20]
movdqu xmm1, xmmword [rsp + 0x50]
movdqu xmm3, xmmword [rsp + 0x40]
movups xmmword [rsp + 0x3f0], xmm5
movzx eax, byte [rsp + 0x3f8]
movdqu xmm5, xmmword [rsp + 0x30]
movups xmmword [rsp + 0x3e0], xmm1
movzx ecx, byte [rsp + 0x3e9]
movdqu xmm2, xmmword [rsp + 0x20]
xor r10, qword [rbx + rax*8 + 0x3000]
movups xmmword [rsp + 0x3d0], xmm1
movzx eax, byte [rsp + 0x3d1]
movups xmmword [rsp + 0x3c0], xmm3
mov r11, qword [rbx + rcx*8]
xor r11, qword [rbx + rax*8 + 0x800]
movzx eax, byte [rsp + 0x3c9]
movups xmmword [rsp + 0x3b0], xmm3
movups xmmword [rsp + 0x3a0], xmm5
movdqu xmm3, xmmword [rsp + 0x50]
xor r11, qword [rbx + rax*8 + 0x1000]
movzx eax, byte [rsp + 0x3b1]
movups xmmword [rsp + 0x390], xmm5
movups xmmword [rsp + 0x380], xmm2
xor r11, qword [rbx + rax*8 + 0x1800]
movzx eax, byte [rsp + 0x3a9]
movups xmmword [rsp + 0x370], xmm3
xor r11, qword [rbx + rax*8 + 0x2000]
movzx eax, byte [rsp + 0x391]
xor r11, qword [rbx + rax*8 + 0x2800]
movzx eax, byte [rsp + 0x389]
xor r11, qword [rbx + rax*8 + 0x3000]
movzx ecx, byte [rsp + 0x37a]
movups xmmword [rsp + 0x360], xmm3
movdqu xmm5, xmmword [rsp + 0x40]
movzx eax, byte [rsp + 0x362]
mov r9, qword [rbx + rcx*8]
movdqu xmm2, xmmword [rsp + 0x30]
xor r9, qword [rbx + rax*8 + 0x800]
movups xmmword [rsp + 0x350], xmm5
movzx eax, byte [rsp + 0x35a]
movups xmmword [rsp + 0x340], xmm5
movdqu xmm4, xmmword [rsp + 0x20]
movdqu xmm5, xmmword [rsp + 0x50]
xor r9, qword [rbx + rax*8 + 0x1000]
movzx eax, byte [rsp + 0x342]
movups xmmword [rsp + 0x330], xmm2
movups xmmword [rsp + 0x320], xmm2
movdqu xmm2, xmmword [rsp + 0x40]
xor r9, qword [rbx + rax*8 + 0x1800]
movzx eax, byte [rsp + 0x33a]
movups xmmword [rsp + 0x310], xmm4
movups xmmword [rsp + 0x300], xmm5
movzx ecx, byte [rsp + 0x30b]
xor r9, qword [rbx + rax*8 + 0x2000]
movzx eax, byte [rsp + 0x322]
movups xmmword [rsp + 0x2f0], xmm5
mov rsi, qword [rbx + rcx*8]
movups xmmword [rsp + 0x2e0], xmm2
xor r9, qword [rbx + rax*8 + 0x2800]
movzx eax, byte [rsp + 0x31a]
xor r9, qword [rbx + rax*8 + 0x3000]
movzx eax, byte [rsp + 0x2f3]
xor rsi, qword [rbx + rax*8 + 0x800]
movzx eax, byte [rsp + 0x2eb]
movups xmmword [rsp + 0x2d0], xmm2
movdqu xmm4, xmmword [rsp + 0x30]
movdqu xmm1, xmmword [rsp + 0x20]
xor rsi, qword [rbx + rax*8 + 0x1000]
movzx eax, byte [rsp + 0x2d3]
movups xmmword [rsp + 0x2c0], xmm4
movdqu xmm2, xmmword [rsp + 0x50]
xor rsi, qword [rbx + rax*8 + 0x1800]
movzx eax, byte [rsp + 0x2cb]
movups xmmword [rsp + 0x2b0], xmm4
movups xmmword [rsp + 0x2a0], xmm1
movdqu xmm4, xmmword [rsp + 0x40]
movdqu xmm1, xmmword [rsp + 0x30]
xor rsi, qword [rbx + rax*8 + 0x2000]
movzx eax, byte [rsp + 0x2b3]
movups xmmword [rsp + 0x290], xmm2
movups xmmword [rsp + 0x280], xmm2
movzx ecx, byte [rsp + 0x29c]
xor rsi, qword [rbx + rax*8 + 0x2800]
movzx eax, byte [rsp + 0x2ab]
movups xmmword [rsp + 0x270], xmm4
mov rcx, qword [rbx + rcx*8]
movups xmmword [rsp + 0x260], xmm4
xor rsi, qword [rbx + rax*8 + 0x3000]
movzx eax, byte [rsp + 0x284]
movups xmmword [rsp + 0x250], xmm1
xor rcx, qword [rbx + rax*8 + 0x800]
movzx eax, byte [rsp + 0x27c]
xor rcx, qword [rbx + rax*8 + 0x1000]
movzx eax, byte [rsp + 0x264]
xor rcx, qword [rbx + rax*8 + 0x1800]
movzx eax, byte [rsp + 0x25c]
movups xmmword [rsp + 0x240], xmm1
movdqu xmm3, xmmword [rsp + 0x20]
movdqu xmm4, xmmword [rsp + 0x50]
xor rcx, qword [rbx + rax*8 + 0x2000]
movzx eax, byte [rsp + 0x244]
movups xmmword [rsp + 0x230], xmm3
movdqu xmm1, xmmword [rsp + 0x40]
movdqu xmm3, xmmword [rsp + 0x30]
xor rcx, qword [rbx + rax*8 + 0x2800]
movzx eax, byte [rsp + 0x23c]
movups xmmword [rsp + 0x220], xmm4
movups xmmword [rsp + 0x210], xmm4
movdqu xmm5, xmmword [rsp + 0x20]
movzx r8d, byte [rsp + 0x22d]
xor rcx, qword [rbx + rax*8 + 0x3000]
movzx eax, byte [rsp + 0x215]
movups xmmword [rsp + 0x200], xmm1
mov rbp, qword [rbx + r8*8]
movups xmmword [rsp + 0x1f0], xmm1
xor rbp, qword [rbx + rax*8 + 0x800]
movzx eax, byte [rsp + 0x20d]
movups xmmword [rsp + 0x1e0], xmm3
movups xmmword [rsp + 0x1d0], xmm3
xor rbp, qword [rbx + rax*8 + 0x1000]
movzx eax, byte [rsp + 0x1f5]
add r15, 0x40
movups xmmword [rsp + 0x1c0], xmm5
xor rbp, qword [rbx + rax*8 + 0x1800]
movzx eax, byte [rsp + 0x1ed]
xor rbp, qword [rbx + rax*8 + 0x2000]
movzx eax, byte [rsp + 0x1d5]
xor rbp, qword [rbx + rax*8 + 0x2800]
movzx eax, byte [rsp + 0x1cd]
movdqu xmm1, xmmword [rsp + 0x50]
movdqu xmm3, xmmword [rsp + 0x40]
xor rbp, qword [rbx + rax*8 + 0x3000]
movdqu xmm5, xmmword [rsp + 0x30]
movups xmmword [rsp + 0x1b0], xmm1
movzx eax, byte [rsp + 0x1be]
movdqu xmm2, xmmword [rsp + 0x20]
movups xmmword [rsp + 0x1a0], xmm1
movzx r8d, byte [rsp + 0x1a6]
movups xmmword [rsp + 0x190], xmm3
mov rax, qword [rbx + rax*8]
xor rax, qword [rbx + r8*8 + 0x800]
movups xmmword [rsp + 0x180], xmm3
movzx r8d, byte [rsp + 0x19e]
movups xmmword [rsp + 0x170], xmm5
movdqu xmm3, xmmword [rsp + 0x50]
xor rax, qword [rbx + r8*8 + 0x1000]
movups xmmword [rsp + 0x160], xmm5
movzx r8d, byte [rsp + 0x186]
movups xmmword [rsp + 0x150], xmm2
xor rax, qword [rbx + r8*8 + 0x1800]
movups xmmword [rsp + 0x140], xmm3
movzx r8d, byte [rsp + 0x17e]
movzx r12d, byte [rsp + 0x14f]
movups xmmword [rsp + 0x130], xmm3
xor rax, qword [rbx + r8*8 + 0x2000]
movzx r8d, byte [rsp + 0x166]
xor rax, qword [rbx + r8*8 + 0x2800]
movzx r8d, byte [rsp + 0x15e]
xor rax, qword [rbx + r8*8 + 0x3000]
movzx r8d, byte [rsp + 0x137]
mov r12, qword [rbx + r12*8]
movdqu xmm5, xmmword [rsp + 0x40]
xor r12, qword [rbx + r8*8 + 0x800]
movdqu xmm2, xmmword [rsp + 0x30]
movups xmmword [rsp + 0x120], xmm5
movdqu xmm4, xmmword [rsp + 0x20]
movzx r8d, byte [rsp + 0x12f]
movups xmmword [rsp + 0x110], xmm5
xor r12, qword [rbx + r8*8 + 0x1000]
movups xmmword [rsp + 0x100], xmm2
movzx r8d, byte [rsp + 0x117]
movdqu xmm3, xmm4
movups xmmword [rsp + 0xf0], xmm2
xor r12, qword [rbx + r8*8 + 0x1800]
movups xmmword [rsp + 0xe0], xmm4
movzx r8d, byte [rsp + 0x10f]
movups xmmword [rsp + 0xd0], xmm4
xor r12, qword [rbx + r8*8 + 0x2000]
movups xmmword [rsp + 0xc0], xmm4
movzx r8d, byte [rsp + 0xf7]
movups xmmword [rsp + 0xb0], xmm4
xor r12, qword [rbx + r8*8 + 0x2800]
movups xmmword [rsp + 0xa0], xmm4
movzx r8d, byte [rsp + 0xef]
xor r12, qword [rbx + r8*8 + 0x3000]
movzx r8d, byte [rsp + 0xd6]
xor rax, qword [rbx + r8*8 + 0x3800]
movq xmm0, rax
movzx eax, byte [rsp + 0xc7]
xor r12, qword [rbx + rax*8 + 0x3800]
movzx eax, byte [rsp + 0xb4]
movq xmm2, r12
xor rcx, qword [rbx + rax*8 + 0x3800]
movzx eax, byte [rsp + 0xa5]
punpcklqdq xmm0, xmm2
movq xmm1, rcx
xor rbp, qword [rbx + rax*8 + 0x3800]
movups xmmword [rsp + 0x90], xmm4
movzx eax, byte [rsp + 0x92]
movups xmmword [rsp + 0x80], xmm4
movq xmm5, rbp
xor r9, qword [rbx + rax*8 + 0x3800]
movzx eax, byte [rsp + 0x83]
punpcklqdq xmm1, xmm5
movdqu xmm5, xmm3
movups xmmword [rsp + 0x60], xmm5
movq xmm2, r9
xor rsi, qword [rbx + rax*8 + 0x3800]
movzx eax, byte [rsp + 0x20]
movups xmmword [rsp + 0x70], xmm3
movq xmm4, rsi
movups xmmword [rsp + 0x4c0], xmm1
pxor xmm1, xmmword [rsp + 0x480]
xor r10, qword [rbx + rax*8 + 0x3800]
movzx eax, byte [rsp + 0x61]
punpcklqdq xmm2, xmm4
movups xmmword [rsp + 0x4d0], xmm0
movq xmm3, r10
movups xmmword [rsp + 0x4b0], xmm2
pxor xmm0, xmmword [rsp + 0x490]
pxor xmm2, xmmword [rsp + 0x470]
xor r11, qword [rbx + rax*8 + 0x3800]
lea rax, [0x005c4ba0]
movups xmmword [rsp + 0x480], xmm1
movq xmm5, r11
movups xmmword [rsp + 0x470], xmm2
punpcklqdq xmm3, xmm5
movups xmmword [rsp + 0x490], xmm0
movups xmmword [rsp + 0x4a0], xmm3
pxor xmm3, xmmword [rsp + 0x460]
movups xmmword [rsp + 0x460], xmm3
cmp r15, rax
jne 0x45cb00
movdqu xmm4, xmmword [r14]
pxor xmm4, xmmword [r13]
pxor xmm3, xmm4
movups xmmword [r13], xmm3
movdqu xmm3, xmmword [r13 + 0x10]
pxor xmm3, xmmword [r14 + 0x10]
pxor xmm2, xmm3
movups xmmword [r13 + 0x10], xmm2
movdqu xmm2, xmmword [r13 + 0x20]
pxor xmm2, xmmword [r14 + 0x20]
pxor xmm1, xmm2
movups xmmword [r13 + 0x20], xmm1
movdqu xmm1, xmmword [r13 + 0x30]
pxor xmm1, xmmword [r14 + 0x30]
pxor xmm0, xmm1
movups xmmword [r13 + 0x30], xmm0
add rsp, 0x4e8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret