Function at 0x58f2fd
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions

Disassembly:
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov rax, rsp
mov rdi, rcx
mov rsi, rdx
mov rdx, r8
mov rcx, r9
mov r8, qword [rsp + 0x28]
cmp rdx, 1
jne 0x58f370
movups xmm2, xmmword [r8]
movups xmm3, xmmword [rdi]
mov edx, dword [rcx + 0xf0]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x20]
xorps xmm2, xmm0
aesenc xmm2, xmm1
dec edx
movups xmm1, xmmword [rcx]
lea rcx, [rcx + 0x10]
jne 0x58f333
aesenclast xmm2, xmm1
pxor xmm0, xmm0
pxor xmm1, xmm1
xorps xmm2, xmm3
pxor xmm3, xmm3
movups xmmword [rsi], xmm2
xorps xmm2, xmm2
jmp 0x58fcff
lea r11, [rsp]
push rbp
sub rsp, 0x120
and rsp, 0xfffffffffffffff0
movaps xmmword [r11 - 0xa8], xmm6
movaps xmmword [r11 - 0x98], xmm7
movaps xmmword [r11 - 0x88], xmm8
movaps xmmword [r11 - 0x78], xmm9
movaps xmmword [r11 - 0x68], xmm10
movaps xmmword [r11 - 0x58], xmm11
movaps xmmword [r11 - 0x48], xmm12
movaps xmmword [r11 - 0x38], xmm13
movaps xmmword [r11 - 0x28], xmm14
movaps xmmword [r11 - 0x18], xmm15
movdqu xmm2, xmmword [r8]
movdqu xmm0, xmmword [rcx]
mov r8d, dword [r8 + 0xc]
pxor xmm2, xmm0
mov ebp, dword [rcx + 0xc]
movdqa xmmword [rsp], xmm2
bswap r8d
movdqa xmm3, xmm2
movdqa xmm4, xmm2
movdqa xmm5, xmm2
movdqa xmmword [rsp + 0x40], xmm2
movdqa xmmword [rsp + 0x50], xmm2
movdqa xmmword [rsp + 0x60], xmm2
mov r10, rdx
movdqa xmmword [rsp + 0x70], xmm2
lea rax, [r8 + 1]
lea rdx, [r8 + 2]
bswap eax
bswap edx
xor eax, ebp
xor edx, ebp
pinsrd xmm3, eax, 3
lea rax, [r8 + 3]
movdqa xmmword [rsp + 0x10], xmm3
pinsrd xmm4, edx, 3
bswap eax
mov rdx, r10
lea r10, [r8 + 4]
movdqa xmmword [rsp + 0x20], xmm4
xor eax, ebp
bswap r10d
pinsrd xmm5, eax, 3
xor r10d, ebp
movdqa xmmword [rsp + 0x30], xmm5
lea r9, [r8 + 5]
mov dword [rsp + 0x4c], r10d
bswap r9d
lea r10, [r8 + 6]
mov eax, dword [rcx + 0xf0]
xor r9d, ebp
bswap r10d
mov dword [rsp + 0x5c], r9d
xor r10d, ebp
lea r9, [r8 + 7]
mov dword [rsp + 0x6c], r10d
bswap r9d
lea r10, [0x005b72e0]
mov r10d, dword [r10 + 4]
xor r9d, ebp
and r10d, 0x4400000
mov dword [rsp + 0x7c], r9d
movups xmm1, xmmword [rcx + 0x10]
movdqa xmm6, xmmword [rsp + 0x40]
movdqa xmm7, xmmword [rsp + 0x50]
cmp rdx, 8
jb 0x58fa88
sub rdx, 6
cmp r10d, 0x400000
je 0x58f4d0
lea rcx, [rcx + 0x80]
sub rdx, 2
jmp 0x58f660
shl eax, 4
mov r10d, 0x30
bswap ebp
lea rcx, [rcx + rax + 0x20]
sub r10, rax
jmp 0x58f4f0
add r8d, 6
movups xmm0, xmmword [rcx + r10 - 0x30]
aesenc xmm2, xmm1
mov eax, r8d
xor eax, ebp
aesenc xmm3, xmm1
movbe dword [rsp + 0xc], eax
lea eax, [r8 + 1]
aesenc xmm4, xmm1
xor eax, ebp
movbe dword [rsp + 0x1c], eax
aesenc xmm5, xmm1
lea eax, [r8 + 2]
xor eax, ebp
aesenc xmm6, xmm1
movbe dword [rsp + 0x2c], eax
lea eax, [r8 + 3]
aesenc xmm7, xmm1
movups xmm1, xmmword [rcx + r10 - 0x20]
xor eax, ebp
aesenc xmm2, xmm0
movbe dword [rsp + 0x3c], eax
lea eax, [r8 + 4]
aesenc xmm3, xmm0
xor eax, ebp
movbe dword [rsp + 0x4c], eax
aesenc xmm4, xmm0
lea eax, [r8 + 5]
xor eax, ebp
aesenc xmm5, xmm0
movbe dword [rsp + 0x5c], eax
mov rax, r10
aesenc xmm6, xmm0
aesenc xmm7, xmm0
movups xmm0, xmmword [rcx + r10 - 0x10]
call fcn.0058f150
movdqu xmm8, xmmword [rdi]
movdqu xmm9, xmmword [rdi + 0x10]
movdqu xmm10, xmmword [rdi + 0x20]
movdqu xmm11, xmmword [rdi + 0x30]
movdqu xmm12, xmmword [rdi + 0x40]
movdqu xmm13, xmmword [rdi + 0x50]
lea rdi, [rdi + 0x60]
movups xmm1, xmmword [rcx + r10 - 0x40]
pxor xmm8, xmm2
movaps xmm2, xmmword [rsp]
pxor xmm9, xmm3
movaps xmm3, xmmword [rsp + 0x10]
pxor xmm10, xmm4
movaps xmm4, xmmword [rsp + 0x20]
pxor xmm11, xmm5
movaps xmm5, xmmword [rsp + 0x30]
pxor xmm12, xmm6
movaps xmm6, xmmword [rsp + 0x40]
pxor xmm13, xmm7
movaps xmm7, xmmword [rsp + 0x50]
movdqu xmmword [rsi], xmm8
movdqu xmmword [rsi + 0x10], xmm9
movdqu xmmword [rsi + 0x20], xmm10
movdqu xmmword [rsi + 0x30], xmm11
movdqu xmmword [rsi + 0x40], xmm12
movdqu xmmword [rsi + 0x50], xmm13
lea rsi, [rsi + 0x60]
sub rdx, 6
jae 0x58f4f0
add rdx, 6
je 0x58fc42
lea eax, [r10 - 0x30]
lea rcx, [rcx + r10 - 0x50]
neg eax
shr eax, 4
jmp 0x58fa88
add r8d, 8
movdqa xmm8, xmmword [rsp + 0x60]
aesenc xmm2, xmm1
mov r9d, r8d
movdqa xmm9, xmmword [rsp + 0x70]
aesenc xmm3, xmm1
bswap r9d
movups xmm0, xmmword [rcx - 0x60]
aesenc xmm4, xmm1
xor r9d, ebp
nop
aesenc xmm5, xmm1
mov dword [rsp + 0xc], r9d
lea r9, [r8 + 1]
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
movups xmm1, xmmword [rcx - 0x50]
bswap r9d
aesenc xmm2, xmm0
aesenc xmm3, xmm0
xor r9d, ebp
nop
aesenc xmm4, xmm0
aesenc xmm5, xmm0
mov dword [rsp + 0x1c], r9d
lea r9, [r8 + 2]
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
movups xmm0, xmmword [rcx - 0x40]
bswap r9d
aesenc xmm2, xmm1
aesenc xmm3, xmm1
xor r9d, ebp
nop
aesenc xmm4, xmm1
aesenc xmm5, xmm1
mov dword [rsp + 0x2c], r9d
lea r9, [r8 + 3]
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
movups xmm1, xmmword [rcx - 0x30]
bswap r9d
aesenc xmm2, xmm0
aesenc xmm3, xmm0
xor r9d, ebp
nop
aesenc xmm4, xmm0
aesenc xmm5, xmm0
mov dword [rsp + 0x3c], r9d
lea r9, [r8 + 4]
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
movups xmm0, xmmword [rcx - 0x20]
bswap r9d
aesenc xmm2, xmm1
aesenc xmm3, xmm1
xor r9d, ebp
nop
aesenc xmm4, xmm1
aesenc xmm5, xmm1
mov dword [rsp + 0x4c], r9d
lea r9, [r8 + 5]
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
movups xmm1, xmmword [rcx - 0x10]
bswap r9d
aesenc xmm2, xmm0
aesenc xmm3, xmm0
xor r9d, ebp
nop
aesenc xmm4, xmm0
aesenc xmm5, xmm0
mov dword [rsp + 0x5c], r9d
lea r9, [r8 + 6]
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
movups xmm0, xmmword [rcx]
bswap r9d
aesenc xmm2, xmm1
aesenc xmm3, xmm1
xor r9d, ebp
nop
aesenc xmm4, xmm1
aesenc xmm5, xmm1
mov dword [rsp + 0x6c], r9d
lea r9, [r8 + 7]
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
movups xmm1, xmmword [rcx + 0x10]
bswap r9d
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm4, xmm0
xor r9d, ebp
movdqu xmm10, xmmword [rdi]
aesenc xmm5, xmm0
mov dword [rsp + 0x7c], r9d
cmp eax, 0xb
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
movups xmm0, xmmword [rcx + 0x20]
jb 0x58f940
aesenc xmm2, xmm1
aesenc xmm3, xmm1
aesenc xmm4, xmm1
aesenc xmm5, xmm1
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
movups xmm1, xmmword [rcx + 0x30]
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm4, xmm0
aesenc xmm5, xmm0
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
movups xmm0, xmmword [rcx + 0x40]
aesenc xmm2, xmm1
aesenc xmm3, xmm1
aesenc xmm4, xmm1
aesenc xmm5, xmm1
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
movups xmm1, xmmword [rcx + 0x50]
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm4, xmm0
aesenc xmm5, xmm0
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
movups xmm0, xmmword [rcx + 0x60]
jmp 0x58f940
movdqu xmm11, xmmword [rdi + 0x10]
pxor xmm10, xmm0
movdqu xmm12, xmmword [rdi + 0x20]
pxor xmm11, xmm0
movdqu xmm13, xmmword [rdi + 0x30]
pxor xmm12, xmm0
movdqu xmm14, xmmword [rdi + 0x40]
pxor xmm13, xmm0
movdqu xmm15, xmmword [rdi + 0x50]
pxor xmm14, xmm0
prefetcht0 byte [rdi + 0x1c0]
prefetcht0 byte [rdi + 0x200]
pxor xmm15, xmm0
aesenc xmm2, xmm1
aesenc xmm3, xmm1
aesenc xmm4, xmm1
aesenc xmm5, xmm1
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
movdqu xmm1, xmmword [rdi + 0x60]
lea rdi, [rdi + 0x80]
aesenclast xmm2, xmm10
pxor xmm1, xmm0
movdqu xmm10, xmmword [rdi - 0x10]
aesenclast xmm3, xmm11
pxor xmm10, xmm0
movdqa xmm11, xmmword [rsp]
aesenclast xmm4, xmm12
aesenclast xmm5, xmm13
movdqa xmm12, xmmword [rsp + 0x10]
movdqa xmm13, xmmword [rsp + 0x20]
aesenclast xmm6, xmm14
aesenclast xmm7, xmm15
movdqa xmm14, xmmword [rsp + 0x30]
movdqa xmm15, xmmword [rsp + 0x40]
aesenclast xmm8, xmm1
movdqa xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rcx - 0x70]
aesenclast xmm9, xmm10
movups xmmword [rsi], xmm2
movdqa xmm2, xmm11
movups xmmword [rsi + 0x10], xmm3
movdqa xmm3, xmm12
movups xmmword [rsi + 0x20], xmm4
movdqa xmm4, xmm13
movups xmmword [rsi + 0x30], xmm5
movdqa xmm5, xmm14
movups xmmword [rsi + 0x40], xmm6
movdqa xmm6, xmm15
movups xmmword [rsi + 0x50], xmm7
movdqa xmm7, xmm0
movups xmmword [rsi + 0x60], xmm8
movups xmmword [rsi + 0x70], xmm9
lea rsi, [rsi + 0x80]
sub rdx, 8
jae 0x58f660
add rdx, 8
je 0x58fc42
lea rcx, [rcx - 0x80]
lea rcx, [rcx + 0x10]
cmp rdx, 4
jb 0x58fbe0
je 0x58fb60
shl eax, 4
movdqa xmm8, xmmword [rsp + 0x60]
pxor xmm9, xmm9
movups xmm0, xmmword [rcx + 0x10]
aesenc xmm2, xmm1
aesenc xmm3, xmm1
lea rcx, [rax + rcx + 0x10]
neg rax
aesenc xmm4, xmm1
add rax, 0x10
movups xmm10, xmmword [rdi]
aesenc xmm5, xmm1
aesenc xmm6, xmm1
movups xmm11, xmmword [rdi + 0x10]
movups xmm12, xmmword [rdi + 0x20]
aesenc xmm7, xmm1
aesenc xmm8, xmm1
call fcn.0058f25a
movdqu xmm13, xmmword [rdi + 0x30]
pxor xmm2, xmm10
movdqu xmm10, xmmword [rdi + 0x40]
pxor xmm3, xmm11
movdqu xmmword [rsi], xmm2
pxor xmm4, xmm12
movdqu xmmword [rsi + 0x10], xmm3
pxor xmm5, xmm13
movdqu xmmword [rsi + 0x20], xmm4
pxor xmm6, xmm10
movdqu xmmword [rsi + 0x30], xmm5
movdqu xmmword [rsi + 0x40], xmm6
cmp rdx, 6
jb 0x58fc42
movups xmm11, xmmword [rdi + 0x50]
xorps xmm7, xmm11
movups xmmword [rsi + 0x50], xmm7
je 0x58fc42
movups xmm12, xmmword [rdi + 0x60]
xorps xmm8, xmm12
movups xmmword [rsi + 0x60], xmm8
jmp 0x58fc42
aesenc xmm2, xmm1
lea rcx, [rcx + 0x10]
dec eax
aesenc xmm3, xmm1
aesenc xmm4, xmm1
aesenc xmm5, xmm1
movups xmm1, xmmword [rcx]
jne 0x58fb60
aesenclast xmm2, xmm1
aesenclast xmm3, xmm1
movups xmm10, xmmword [rdi]
movups xmm11, xmmword [rdi + 0x10]
aesenclast xmm4, xmm1
aesenclast xmm5, xmm1
movups xmm12, xmmword [rdi + 0x20]
movups xmm13, xmmword [rdi + 0x30]
xorps xmm2, xmm10
movups xmmword [rsi], xmm2
xorps xmm3, xmm11
movups xmmword [rsi + 0x10], xmm3
pxor xmm4, xmm12
movdqu xmmword [rsi + 0x20], xmm4
pxor xmm5, xmm13
movdqu xmmword [rsi + 0x30], xmm5
jmp 0x58fc42
aesenc xmm2, xmm1
lea rcx, [rcx + 0x10]
dec eax
aesenc xmm3, xmm1
aesenc xmm4, xmm1
movups xmm1, xmmword [rcx]
jne 0x58fbe0
aesenclast xmm2, xmm1
aesenclast xmm3, xmm1
aesenclast xmm4, xmm1
movups xmm10, xmmword [rdi]
xorps xmm2, xmm10
movups xmmword [rsi], xmm2
cmp rdx, 2
jb 0x58fc42
movups xmm11, xmmword [rdi + 0x10]
xorps xmm3, xmm11
movups xmmword [rsi + 0x10], xmm3
je 0x58fc42
movups xmm12, xmmword [rdi + 0x20]
xorps xmm4, xmm12
movups xmmword [rsi + 0x20], xmm4
xorps xmm0, xmm0
xor ebp, ebp
pxor xmm1, xmm1
pxor xmm2, xmm2
pxor xmm3, xmm3
pxor xmm4, xmm4
pxor xmm5, xmm5
movaps xmm6, xmmword [r11 - 0xa8]
movaps xmmword [r11 - 0xa8], xmm0
movaps xmm7, xmmword [r11 - 0x98]
movaps xmmword [r11 - 0x98], xmm0
movaps xmm8, xmmword [r11 - 0x88]
movaps xmmword [r11 - 0x88], xmm0
movaps xmm9, xmmword [r11 - 0x78]
movaps xmmword [r11 - 0x78], xmm0
movaps xmm10, xmmword [r11 - 0x68]
movaps xmmword [r11 - 0x68], xmm0
movaps xmm11, xmmword [r11 - 0x58]
movaps xmmword [r11 - 0x58], xmm0
movaps xmm12, xmmword [r11 - 0x48]
movaps xmmword [r11 - 0x48], xmm0
movaps xmm13, xmmword [r11 - 0x38]
movaps xmmword [r11 - 0x38], xmm0
movaps xmm14, xmmword [r11 - 0x28]
movaps xmmword [r11 - 0x28], xmm0
movaps xmm15, xmmword [r11 - 0x18]
movaps xmmword [r11 - 0x18], xmm0
movaps xmmword [rsp], xmm0
movaps xmmword [rsp + 0x10], xmm0
movaps xmmword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x70], xmm0
mov rbp, qword [r11 - 8]
lea rsp, [r11]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
ret