Function at 0x42c780
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x70
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x50], xmm7
movaps xmmword [rsp + 0x60], xmm8
lea rbx, str.cw
mov rdi, r9
movdqa xmm8, xmmword [rcx + 0x10]
pshufd xmm4, xmm8, 0x55
movdqa xmm3, xmmword [rcx]
pshufd xmm0, xmm8, 0xff
movd eax, xmm4
movd r9d, xmm4
movaps xmmword [rdx], xmm3
movd edx, xmm4
shr eax, 0x18
shr r9d, 0x10
movaps xmmword [r8], xmm8
movzx ecx, dl
movzx r10d, r9b
movzx edx, dh
movzx esi, byte [rbx + rax]
movzx r8d, byte [rbx + rcx]
movd ecx, xmm0
movzx r11d, byte [rbx + r10]
movzx eax, byte [rbx + rdx]
movd edx, xmm0
movzx r10d, cl
movzx ecx, ch
shr edx, 0x10
shl esi, 0x18
or esi, r8d
movd r8d, xmm0
shl r11d, 0x10
or esi, r11d
shl eax, 8
movzx r11d, byte [rbx + r10]
shr r8d, 0x18
or esi, eax
movzx eax, dl
movzx r9d, byte [rbx + r8]
movzx r8d, byte [rbx + rax]
movzx r10d, byte [rbx + rcx]
shl r9d, 0x18
shl r8d, 0x10
or r9d, r11d
shl r10d, 8
mov r11d, esi
or r9d, r8d
ror r11d, 8
or r9d, r10d
xor r11d, 1
mov edx, r9d
mov dword [rsp + 0x24], r11d
mov dword [rsp + 0x2c], r9d
ror edx, 8
movd xmm2, dword [rsp + 0x24]
xor edx, 1
movd xmm1, dword [rsp + 0x2c]
mov dword [rsp + 0x28], edx
movd xmm7, dword [rsp + 0x28]
mov dword [rsp + 0x28], esi
lea rsi, [rsp + 0x30]
movd xmm6, dword [rsp + 0x28]
punpckldq xmm1, xmm7
movdqa xmm7, xmm3
punpckldq xmm6, xmm2
mov rcx, rsi
pslldq xmm7, 4
movdqa xmm0, xmm6
movdqa xmm6, xmm7
punpcklqdq xmm0, xmm1
pslldq xmm6, 4
movdqa xmm1, xmm6
pxor xmm6, xmm7
pshufd xmm4, xmm0, 0xff
pslldq xmm1, 4
pxor xmm6, xmm3
pxor xmm6, xmm1
pxor xmm6, xmm4
movaps xmmword [rsp + 0x30], xmm6
call fcn.0042c6a0
movdqa xmm2, xmm8
pshufd xmm7, xmm0, 0xaa
pslldq xmm2, 4
movdqa xmm3, xmm2
movaps xmmword [rdi], xmm6
pslldq xmm3, 4
movdqa xmm0, xmm3
mov rdi, qword [rsp + 0xb0]
pxor xmm3, xmm2
pslldq xmm0, 4
pxor xmm3, xmm8
pxor xmm3, xmm0
movdqa xmm0, xmm6
pxor xmm7, xmm3
pslldq xmm0, 4
pshufd xmm8, xmm7, 0x55
pshufd xmm5, xmm7, 0xff
movaps xmmword [rdi], xmm7
movd r9d, xmm8
movd edx, xmm8
movd r10d, xmm8
shr r9d, 0x18
movzx r8d, dl
movzx edx, dh
movzx eax, byte [rbx + r9]
movzx ecx, byte [rbx + r8]
shr r10d, 0x10
movzx r11d, r10b
movd r8d, xmm5
movzx r9d, byte [rbx + rdx]
movzx edi, byte [rbx + r11]
movd edx, xmm5
shr r8d, 0x18
shl eax, 0x18
movzx r10d, byte [rbx + r8]
or eax, ecx
movd ecx, xmm5
shl r9d, 8
shl edi, 0x10
movdqa xmm5, xmm0
movzx r11d, cl
or eax, edi
movzx ecx, ch
movzx edi, byte [rbx + r11]
shl r10d, 0x18
or eax, r9d
movzx r11d, byte [rbx + rcx]
pslldq xmm5, 4
mov rcx, rsi
or r10d, edi
shr edx, 0x10
mov edi, eax
movzx r9d, dl
shl r11d, 8
ror edi, 8
movzx r8d, byte [rbx + r9]
xor edi, 2
mov dword [rsp + 0x24], edi
movd xmm3, dword [rsp + 0x24]
shl r8d, 0x10
or r10d, r8d
or r10d, r11d
mov edx, r10d
mov dword [rsp + 0x2c], r10d
ror edx, 8
movd xmm1, dword [rsp + 0x2c]
xor edx, 2
mov dword [rsp + 0x28], edx
movd xmm4, dword [rsp + 0x28]
mov dword [rsp + 0x28], eax
movd xmm2, dword [rsp + 0x28]
punpckldq xmm1, xmm4
punpckldq xmm2, xmm3
punpcklqdq xmm2, xmm1
movdqa xmm1, xmm5
pxor xmm5, xmm0
pshufd xmm8, xmm2, 0xff
pslldq xmm1, 4
pxor xmm5, xmm1
pxor xmm5, xmm8
pxor xmm6, xmm5
movaps xmmword [rsp + 0x30], xmm6
call fcn.0042c6a0
movdqa xmm3, xmm7
pshufd xmm4, xmm0, 0xaa
pslldq xmm3, 4
movdqa xmm8, xmm3
mov rax, qword [rsp + 0xb8]
mov r10, qword [rsp + 0xc0]
pslldq xmm8, 4
movdqa xmm2, xmm8
pxor xmm8, xmm3
movaps xmmword [rax], xmm6
pslldq xmm2, 4
pxor xmm8, xmm2
pxor xmm8, xmm4
pxor xmm7, xmm8
pshufd xmm0, xmm7, 0x55
pshufd xmm5, xmm7, 0xff
movaps xmmword [r10], xmm7
movd r9d, xmm0
movd edi, xmm0
movd edx, xmm0
shr r9d, 0x18
shr edi, 0x10
movzx r11d, byte [rbx + r9]
movzx r8d, dl
movzx eax, dil
movzx ecx, byte [rbx + r8]
movzx r10d, byte [rbx + rax]
movzx edx, dh
movzx r9d, byte [rbx + rdx]
movd r8d, xmm5
movd edx, xmm5
shl r11d, 0x18
shr r8d, 0x18
shr edx, 0x10
or r11d, ecx
shl r10d, 0x10
movd ecx, xmm5
or r11d, r10d
shl r9d, 8
movzx edi, byte [rbx + r8]
or r11d, r9d
movzx eax, cl
movzx r9d, dl
movzx r10d, byte [rbx + rax]
movzx r8d, byte [rbx + r9]
movzx ecx, ch
movzx eax, byte [rbx + rcx]
movdqa xmm5, xmm6
shl edi, 0x18
mov rcx, rsi
pslldq xmm5, 4
shl r8d, 0x10
or edi, r10d
mov r10d, r11d
or edi, r8d
shl eax, 8
ror r10d, 8
or edi, eax
xor r10d, 4
mov edx, edi
mov dword [rsp + 0x24], r10d
mov dword [rsp + 0x2c], edi
ror edx, 8
movd xmm3, dword [rsp + 0x24]
xor edx, 4
movd xmm1, dword [rsp + 0x2c]
mov dword [rsp + 0x28], edx
movd xmm4, dword [rsp + 0x28]
mov dword [rsp + 0x28], r11d
movd xmm8, dword [rsp + 0x28]
punpckldq xmm1, xmm4
punpckldq xmm8, xmm3
punpcklqdq xmm8, xmm1
movdqa xmm1, xmm5
pslldq xmm1, 4
pxor xmm5, xmm1
movdqa xmm0, xmm1
pshufd xmm2, xmm8, 0xff
movdqa xmm8, xmm7
pslldq xmm0, 4
pxor xmm5, xmm0
pslldq xmm8, 4
pxor xmm5, xmm2
pxor xmm6, xmm5
movaps xmmword [rsp + 0x30], xmm6
call fcn.0042c6a0
movdqa xmm2, xmm8
pshufd xmm4, xmm0, 0xaa
pslldq xmm2, 4
pxor xmm8, xmm2
movdqa xmm3, xmm2
mov r11, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xd0]
pslldq xmm3, 4
pxor xmm8, xmm3
movaps xmmword [r11], xmm6
pxor xmm8, xmm4
pxor xmm7, xmm8
pshufd xmm5, xmm7, 0x55
pshufd xmm1, xmm7, 0xff
movaps xmmword [rdi], xmm7
movd r9d, xmm5
movd r10d, xmm5
movd edx, xmm5
movdqa xmm5, xmm6
shr r9d, 0x18
movzx eax, byte [rbx + r9]
movzx r8d, dl
movzx edx, dh
movzx ecx, byte [rbx + r8]
movzx r9d, byte [rbx + rdx]
movd r8d, xmm1
movd edx, xmm1
pslldq xmm5, 4
shl eax, 0x18
shr r10d, 0x10
shr r8d, 0x18
movzx r11d, r10b
or eax, ecx
movd ecx, xmm1
movzx edi, byte [rbx + r11]
shl r9d, 8
shr edx, 0x10
movzx r10d, byte [rbx + r8]
movzx r11d, cl
movzx ecx, ch
shl edi, 0x10
or eax, edi
movzx edi, byte [rbx + r11]
shl r10d, 0x18
or eax, r9d
movzx r9d, dl
movzx r8d, byte [rbx + r9]
movzx ebx, byte [rbx + rcx]
mov r11d, eax
ror r11d, 8
mov rcx, rsi
or r10d, edi
xor r11d, 8
mov dword [rsp + 0x24], r11d
shl r8d, 0x10
shl ebx, 8
movd xmm2, dword [rsp + 0x24]
or r10d, r8d
or r10d, ebx
mov edi, r10d
mov dword [rsp + 0x2c], r10d
ror edi, 8
movd xmm0, dword [rsp + 0x2c]
xor edi, 8
mov dword [rsp + 0x28], edi
movd xmm4, dword [rsp + 0x28]
mov dword [rsp + 0x28], eax
movd xmm8, dword [rsp + 0x28]
punpckldq xmm0, xmm4
movdqa xmm4, xmm5
punpckldq xmm8, xmm2
pslldq xmm4, 4
movdqa xmm1, xmm4
pxor xmm4, xmm5
punpcklqdq xmm8, xmm0
pslldq xmm1, 4
pshufd xmm3, xmm8, 0xff
movdqa xmm8, xmm4
pxor xmm8, xmm1
pxor xmm8, xmm3
pxor xmm8, xmm6
movaps xmmword [rsp + 0x30], xmm8
call fcn.0042c6a0
pshufd xmm6, xmm0, 0xaa
movdqa xmm0, xmm7
mov rsi, qword [rsp + 0xd8]
mov rax, qword [rsp + 0xe0]
pslldq xmm0, 4
movdqa xmm2, xmm0
pslldq xmm2, 4
movdqa xmm3, xmm2
pxor xmm2, xmm0
pslldq xmm3, 4
movaps xmmword [rsi], xmm8
pxor xmm2, xmm3
pxor xmm2, xmm6
pxor xmm2, xmm7
movaps xmmword [rax], xmm2
movaps xmm6, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x60]
add rsp, 0x70
pop rbx
pop rsi
pop rdi
ret