Function at 0x459e20
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
movdqa xmmword [rsp + 0x80], xmm9
movdqa xmmword [rsp + 0x70], xmm8
movdqa xmmword [rsp + 0x60], xmm7
movdqa xmmword [rsp + 0x50], xmm6
mov rsi, r8
mov rdi, rcx
lea r14, [r8*4]
test r8, r8
je 0x459e96
mov r15, rdx
mov rax, qword [0x005f7f18]
movzx eax, byte [rax]
mov edx, 4
mov rcx, r14
call fcn.0044f650
test rax, rax
je 0x45a211
mov r12, rax
cmp rsi, 8
jae 0x459ea1
xor eax, eax
jmp 0x459f63
mov r12d, 4
jmp 0x459f9b
mov rax, rsi
and rax, 0xfffffffffffffff8
xor ecx, ecx
movdqa xmm0, xmmword [0x005b6e00]
movdqa xmm1, xmmword [0x005b6e10]
movdqa xmm2, xmmword [0x005b6e20]
movdqa xmm3, xmmword [0x005b6e30]
movdqa xmm4, xmmword [0x005b6e40]
nop word cs:[rax + rax]
movdqu xmm5, xmmword [r15 + rcx*4]
movdqu xmm6, xmmword [r15 + rcx*4 + 0x10]
movdqa xmm7, xmm5
pxor xmm7, xmm0
movdqa xmm8, xmm6
pxor xmm8, xmm0
paddd xmm7, xmm1
paddd xmm8, xmm1
pxor xmm7, xmm2
movdqa xmm9, xmm3
pcmpgtd xmm9, xmm7
pxor xmm8, xmm2
movdqa xmm7, xmm3
pcmpgtd xmm7, xmm8
movdqa xmm8, xmm9
pandn xmm8, xmm5
pand xmm9, xmm4
por xmm9, xmm8
movdqa xmm5, xmm7
pandn xmm5, xmm6
pand xmm7, xmm4
por xmm7, xmm5
movdqu xmmword [r12 + rcx*4], xmm9
movdqu xmmword [r12 + rcx*4 + 0x10], xmm7
add rcx, 8
cmp rax, rcx
jne 0x459ee0
cmp rax, rsi
je 0x459f9b
mov ecx, 0x110000
nop dword [rax + rax]
mov edx, dword [r15 + rax*4]
mov r8d, edx
xor r8d, 0xd800
add r8d, 0xffef0000
cmp r8d, 0xffef0800
cmovb edx, ecx
mov dword [r12 + rax*4], edx
inc rax
cmp rsi, rax
jne 0x459f70
lea rbx, [r12 + rsi*4]
xor eax, eax
nop word cs:[rax + rax]
cmp r14, rax
je 0x459fd8
cmp dword [r12 + rax], 0x110000
lea rax, [rax + 4]
jne 0x459fb0
mov qword [rdi], 0
test rsi, rsi
jne 0x45a115
jmp 0x45a126
test rsi, rsi
mov qword [rsp + 0x30], rdi
je 0x45a06c
cmp rsi, 1
jne 0x45a156
xor r15d, r15d
xor eax, eax
test sil, 1
je 0x45a033
mov ecx, dword [r12 + rax*4]
cmp ecx, 0x110000
je 0x45a033
mov eax, 1
cmp ecx, 0x80
jb 0x45a030
mov eax, 2
cmp ecx, 0x800
jb 0x45a030
cmp ecx, 0x10000
mov eax, 4
sbb rax, 0
add r15, rax
test r15, r15
je 0x45a06c
js 0x45a231
mov rax, qword [0x005f7f18]
movzx eax, byte [rax]
mov edx, 1
mov rcx, r15
call fcn.0044f650
test rax, rax
jne 0x45a074
mov ecx, 1
mov rdx, r15
call fcn.00578c70
jmp 0x45a236
mov eax, 1
xor r15d, r15d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r15
xor ecx, ecx
mov rdi, r12
nop dword [rax + rax]
cmp rdi, rbx
je 0x45a0f8
mov ebp, dword [rdi]
add rdi, 4
cmp ebp, 0x110000
je 0x45a090
mov r8, r15
sub r8, rcx
jb 0x45a220
mov qword [rsp + 0x28], rax
mov r13, rcx
lea rdx, [rax + rcx]
mov ecx, ebp
call fcn.00459b00
mov eax, 1
cmp ebp, 0x80
jb 0x45a0eb
mov eax, 2
cmp ebp, 0x800
jb 0x45a0eb
cmp ebp, 0x10000
mov eax, 4
sbb rax, 0
mov rcx, r13
add rcx, rax
mov rax, qword [rsp + 0x28]
jmp 0x45a090
mov rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x30]
mov qword [rdi + 0x10], rax
movdqu xmm0, xmmword [rsp + 0x38]
movdqu xmmword [rdi], xmm0
test rsi, rsi
je 0x45a126
mov r8d, 4
mov rcx, r12
mov rdx, r14
call fcn.0044f660
mov rax, rdi
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x60]
movaps xmm8, xmmword [rsp + 0x70]
movaps xmm9, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rsi
and rcx, 0xfffffffffffffffe
xor r15d, r15d
xor eax, eax
jmp 0x45a180
add r15, r8
add rax, 2
cmp rcx, rax
je 0x459ff5
mov edx, dword [r12 + rax*4]
cmp edx, 0x110000
jne 0x45a1a0
mov edx, dword [r12 + rax*4 + 4]
cmp edx, 0x110000
je 0x45a173
jmp 0x45a1dc
mov r8d, 1
cmp edx, 0x80
jb 0x45a1cc
mov r8d, 2
cmp edx, 0x800
jb 0x45a1cc
cmp edx, 0x10000
mov r8d, 4
sbb r8, 0
add r15, r8
mov edx, dword [r12 + rax*4 + 4]
cmp edx, 0x110000
je 0x45a173
mov r8d, 1
cmp edx, 0x80
jb 0x45a170
mov r8d, 2
cmp edx, 0x800
jb 0x45a170
cmp edx, 0x10000
mov r8d, 4
sbb r8, 0
jmp 0x45a170
mov ecx, 4
mov rdx, r14
call fcn.00578c70
ud2
lea r8, [0x005b7058]
mov rdx, r15
call fcn.0058e550
jmp 0x45a236
call fcn.00578c30
ud2