Function at 0x45a270
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
movdqa xmmword [rsp + 0xb0], xmm10
movdqa xmmword [rsp + 0xa0], xmm9
movdqa xmmword [rsp + 0x90], xmm8
movdqa xmmword [rsp + 0x80], xmm7
movdqa xmmword [rsp + 0x70], xmm6
mov rbx, r8
mov rsi, rcx
test r8, r8
je 0x45a2f8
mov r14, rdx
lea r15, [rbx*4]
mov r12, qword [0x005f7f18]
movzx eax, byte [r12]
mov edx, 4
mov rcx, r15
call fcn.0044f650
test rax, rax
je 0x45a6bd
mov rdi, rax
cmp rbx, 8
jae 0x45a328
xor eax, eax
jmp 0x45a4c1
mov qword [rsp + 0x20], 4
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], 0
mov r15d, 1
mov r13d, 4
xor r14d, r14d
mov edi, 4
jmp 0x45a5b2
mov rax, rbx
and rax, 0xfffffffffffffff8
xor ecx, ecx
movdqa xmm0, xmmword [0x005b6e50]
movdqa xmm1, xmmword [0x005b6e60]
movdqa xmm2, xmmword [0x005b6e70]
movdqa xmm3, xmmword [0x005b6e80]
movdqa xmm4, xmmword [0x005b6e90]
movdqa xmm5, xmmword [0x005b6ea0]
nop word cs:[rax + rax]
movdqu xmm6, xmmword [r14 + rcx*4]
movdqu xmm7, xmmword [r14 + rcx*4 + 0x10]
movdqa xmm8, xmm6
pxor xmm8, xmm0
movdqa xmm9, xmm7
pxor xmm9, xmm0
paddd xmm8, xmm1
paddd xmm9, xmm1
pxor xmm8, xmm2
movdqa xmm10, xmm3
pcmpgtd xmm10, xmm8
pxor xmm9, xmm2
movdqa xmm8, xmm3
pcmpgtd xmm8, xmm9
movdqa xmm9, xmm10
pandn xmm9, xmm6
pand xmm10, xmm4
por xmm10, xmm9
movdqa xmm6, xmm8
pandn xmm6, xmm7
pand xmm8, xmm4
por xmm8, xmm6
movdqa xmm6, xmm10
pcmpeqd xmm6, xmm4
movdqa xmm7, xmm8
pcmpeqd xmm7, xmm4
movdqa xmm9, xmm6
pandn xmm9, xmm10
pand xmm6, xmm5
por xmm6, xmm9
movdqa xmm9, xmm7
pandn xmm9, xmm8
pand xmm7, xmm5
por xmm7, xmm9
movdqu xmmword [rdi + rcx*4], xmm6
movdqu xmmword [rdi + rcx*4 + 0x10], xmm7
add rcx, 8
cmp rax, rcx
jne 0x45a370
cmp rax, rbx
jne 0x45a4c1
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], rbx
cmp rbx, 1
jne 0x45a514
xor r14d, r14d
xor eax, eax
test bl, 1
je 0x45a48b
mov ecx, dword [rdi + rax*4]
mov eax, 1
cmp ecx, 0x80
jb 0x45a488
mov eax, 2
cmp ecx, 0x800
jb 0x45a488
cmp ecx, 0x10000
mov eax, 4
sbb rax, 0
add r14, rax
lea r13, [rdi + rbx*4]
test r14, r14
je 0x45a5a9
js 0x45a6cc
movzx eax, byte [r12]
mov edx, 1
mov rcx, r14
call fcn.0044f650
test rax, rax
je 0x45a6d3
mov r15, rax
jmp 0x45a5b2
mov ecx, 0xfffd
jmp 0x45a4eb
cmp r8d, 0x110000
cmove r8d, ecx
mov dword [rdi + rax*4], r8d
inc rax
cmp rbx, rax
je 0x45a439
mov edx, dword [r14 + rax*4]
mov r9d, edx
xor r9d, 0xd800
add r9d, 0xffef0000
mov r8d, 0x110000
cmp r9d, 0xffef0800
jb 0x45a4d0
mov r8d, edx
jmp 0x45a4d0
mov rcx, rbx
and rcx, 0xfffffffffffffffe
xor r14d, r14d
xor eax, eax
jmp 0x45a543
add r14, r8
add r14, rdx
add rax, 2
cmp rcx, rax
je 0x45a457
mov r9d, dword [rdi + rax*4]
mov edx, 1
mov r8d, 1
cmp r9d, 0x80
jb 0x45a57b
mov r8d, 2
cmp r9d, 0x800
jb 0x45a57b
cmp r9d, 0x10000
mov r8d, 4
sbb r8, 0
mov r9d, dword [rdi + rax*4 + 4]
cmp r9d, 0x80
jb 0x45a530
mov edx, 2
cmp r9d, 0x800
jb 0x45a530
cmp r9d, 0x10000
mov edx, 4
sbb rdx, 0
jmp 0x45a530
mov r15d, 1
xor r14d, r14d
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x68], r13
test rbx, rbx
je 0x45a63d
xor ebx, ebx
jmp 0x45a5e8
add rbx, rax
cmp rdi, r13
je 0x45a638
mov rax, rdi
add rdi, 4
mov qword [rsp + 0x60], rdi
mov r8, r14
sub r8, rbx
jb 0x45a6a9
mov ebp, dword [rax]
lea rdx, [r15 + rbx]
mov ecx, ebp
call fcn.00459b00
mov eax, 1
cmp ebp, 0x80
jb 0x45a5e0
mov eax, 2
cmp ebp, 0x800
jb 0x45a5e0
cmp ebp, 0x10000
mov eax, 4
sbb rax, 0
jmp 0x45a5e0
mov rbx, qword [rsp + 0x58]
test rbx, rbx
je 0x45a659
mov rcx, qword [rsp + 0x50]
shl rbx, 2
mov r8d, 4
mov rdx, rbx
call fcn.0044f660
mov rax, qword [rsp + 0x48]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rsp + 0x38]
movups xmmword [rsi], xmm0
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0x90]
movaps xmm9, xmmword [rsp + 0xa0]
movaps xmm10, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [0x005b7070]
mov rcx, rbx
mov rdx, r14
call fcn.0058e550
jmp 0x45a6e0
mov ecx, 4
mov rdx, r15
call fcn.00578c70
ud2
call fcn.00578c30
jmp 0x45a6e0
mov ecx, 1
mov rdx, r14
call fcn.00578c70
ud2