Function at 0x22d9f2aa0
Capabilities:
Encrypt data using aes

Disassembly:
push rbp
mov r9, rcx
lea r11, [0x22da14580]
lea r10, [0x22da14980]
mov rbp, rsp
push r15
push r14
push r13
push r12
push rdi
lea rdi, [0x22da14180]
push rsi
push rbx
and rsp, 0xfffffffffffffff0
sub rsp, 0x50
mov eax, dword [rdx]
mov r12d, dword [rdx + 4]
mov qword [rbp + 0x20], r8
mov r13d, dword [rdx + 8]
mov r8d, dword [rdx + 0xc]
mov edx, dword [rcx + 0x1e0]
bswap eax
xor eax, dword [rcx]
bswap r12d
bswap r8d
xor r8d, dword [rcx + 0xc]
mov r14d, eax
bswap r13d
shr edx, 1
xor r12d, dword [rcx + 4]
xor r13d, dword [rcx + 8]
mov eax, r8d
sub edx, 1
add rdx, 1
shl rdx, 5
lea rsi, [rcx + rdx]
mov qword [rsp + 8], rsi
lea rsi, [0x22da14d80]
jmp 0x22d9f2bad
mov ebx, dword [rsp + 0x3c]
mov r14d, dword [rdi + r14*4]
xor r14d, dword [rsi + r13*4]
mov r13d, dword [rsp + 0x2c]
xor r14d, r15d
xor r14d, dword [r11 + r12*4]
xor r14d, dword [r10 + rbx*4]
mov ebx, dword [rsp + 0x38]
mov r15d, dword [rsp + 0x28]
mov eax, dword [rdi + rax*4]
xor eax, dword [rsi + rdx*4]
mov r12d, dword [rdi + rbx*4]
mov ebx, dword [rsp + 0x34]
xor eax, ecx
xor r12d, dword [rsi + r13*4]
mov edx, dword [rsp + 0x40]
xor r12d, r15d
xor r12d, dword [r11 + rbx*4]
mov ebx, dword [rsp + 0x30]
mov r15d, dword [rsp + 0x1c]
xor eax, dword [r11 + rdx*4]
xor r12d, dword [r10 + rbx*4]
mov ebx, dword [rsp + 0x24]
mov edx, dword [rsp + 0x14]
mov r13d, dword [rdi + rbx*4]
mov ebx, dword [rsp + 0x18]
xor r13d, dword [rsi + r15*4]
xor eax, dword [r10 + rdx*4]
xor r13d, ebx
xor r13d, dword [r11 + r8*4]
mov r8d, dword [rsp + 0x20]
xor r13d, dword [r10 + r8*4]
mov edx, r14d
movzx ecx, al
mov ebx, r13d
movzx r8d, r14b
shr edx, 0x18
add r9, 0x20
mov edx, dword [rdi + rdx*4]
xor edx, dword [rsi + rcx*4]
mov ecx, r12d
shr ecx, 0x10
xor edx, dword [r9 - 0x10]
movzx ecx, cl
xor edx, dword [r11 + rcx*4]
movzx ecx, bh
movzx ebx, ah
xor edx, dword [r10 + rcx*4]
mov ecx, r12d
shr ecx, 0x18
mov r15d, edx
mov edx, r14d
shr r14d, 0x10
mov ecx, dword [rdi + rcx*4]
xor ecx, dword [rsi + r8*4]
mov r8d, r13d
movzx edx, dh
shr r8d, 0x10
xor ecx, dword [r9 - 0xc]
movzx r14d, r14b
mov dword [rsp + 0x40], r15d
movzx r8d, r8b
xor ecx, dword [r11 + r8*4]
xor ecx, dword [r10 + rbx*4]
mov ebx, r13d
movzx r8d, r12b
shr ebx, 0x18
movzx r13d, r13b
mov ebx, dword [rdi + rbx*4]
xor ebx, dword [rsi + r8*4]
mov r8d, eax
shr eax, 0x18
shr r8d, 0x10
xor ebx, dword [r9 - 8]
mov eax, dword [rdi + rax*4]
movzx r8d, r8b
xor eax, dword [rsi + r13*4]
xor eax, dword [r9 - 4]
xor ebx, dword [r11 + r8*4]
xor ebx, dword [r10 + rdx*4]
mov edx, r12d
mov r8d, ecx
movzx edx, dh
xor eax, dword [r11 + r14*4]
shr r8d, 0x18
mov r12d, ecx
xor eax, dword [r10 + rdx*4]
mov edx, r15d
mov dword [rsp + 0x38], r8d
mov r8d, ebx
shr edx, 0x18
shr r8d, 0x10
mov r15d, dword [r9]
movzx r13d, al
mov r14d, edx
movzx edx, bh
shr r12d, 0x10
mov dword [rsp + 0x3c], edx
movzx edx, r8b
movzx r8d, byte [rsp + 0x40]
movzx r12d, r12b
mov dword [rsp + 0x34], edx
movzx edx, ah
mov dword [rsp + 0x30], edx
mov edx, dword [r9 + 4]
mov dword [rsp + 0x2c], r8d
mov r8d, ebx
mov dword [rsp + 0x28], edx
mov edx, dword [rsp + 0x40]
shr r8d, 0x18
mov dword [rsp + 0x24], r8d
mov r8d, eax
shr eax, 0x18
movzx edx, dh
shr r8d, 0x10
mov dword [rsp + 0x20], edx
movzx edx, cl
movzx ecx, ch
movzx r8d, r8b
mov dword [rsp + 0x1c], edx
mov edx, dword [r9 + 8]
mov dword [rsp + 0x14], ecx
mov ecx, dword [r9 + 0xc]
mov dword [rsp + 0x18], edx
mov edx, dword [rsp + 0x40]
shr edx, 0x10
movzx edx, dl
mov dword [rsp + 0x40], edx
movzx edx, bl
cmp qword [rsp + 8], r9
jne 0x22d9f2b30
mov esi, eax
lea rdi, [0x22da16180]
mov eax, r15d
mov r15d, r8d
mov r8d, esi
lea rsi, [0x22da15580]
mov dword [rsp + 8], edx
mov r9d, dword [rsp + 0x3c]
mov edx, dword [rdi + r14*4]
xor edx, dword [rsi + r13*4]
lea r10, [0x22da15d80]
xor edx, eax
lea rax, [0x22da15980]
xor edx, dword [r10 + r12*4]
mov r11d, dword [rsp + 0x2c]
xor edx, dword [rax + r9*4]
mov r9d, dword [rsp + 0x38]
mov ebx, dword [rsp + 0x28]
mov r12d, edx
mov r9d, dword [rdi + r9*4]
xor r9d, dword [rsi + r11*4]
shr r12d, 0x10
mov r11d, dword [rsp + 0x34]
xor r9d, ebx
mov ebx, dword [rsp + 0x1c]
movzx r12d, r12b
xor r9d, dword [r10 + r11*4]
mov r11d, dword [rsp + 0x30]
xor r9d, dword [rax + r11*4]
mov r11d, dword [rsp + 0x24]
mov r14d, r9d
mov r13d, r9d
mov r11d, dword [rdi + r11*4]
shr r14d, 0x10
xor r11d, dword [rsi + rbx*4]
shr r13d, 0x18
mov ebx, dword [rsp + 0x18]
movzx r14d, r14b
movzx r13d, r13b
xor r11d, ebx
mov ebx, r15d
xor r11d, dword [r10 + rbx*4]
mov ebx, dword [rsp + 0x20]
xor r11d, dword [rax + rbx*4]
mov ebx, r11d
mov r11d, r8d
mov r8d, dword [rsp + 8]
mov edi, dword [rdi + r11*4]
xor edi, dword [rsi + r8*4]
mov r8d, edx
xor edi, ecx
mov ecx, dword [rsp + 0x40]
shr r8d, 0x18
movzx r8d, r8b
xor edi, dword [r10 + rcx*4]
mov ecx, dword [rsp + 0x14]
mov r10d, ebx
shr r10d, 0x10
xor edi, dword [rax + rcx*4]
mov ecx, ebx
movzx eax, r9b
movzx r10d, r10b
shr ecx, 0x18
shl rax, 8
mov r11d, edi
mov esi, edi
shr r11d, 0x18
mov r15d, ecx
mov ecx, r9d
movzx r9d, dl
movzx ecx, ch
shr esi, 0x10
movzx r11d, r11b
or rax, rcx
movzx ecx, dh
movzx esi, sil
shl rax, 8
or rax, r14
shl rax, 8
or rax, r13
shl rax, 8
or rax, r9
movzx r9d, bl
movzx ebx, bh
shl rax, 8
mov rdx, rax
movzx eax, dil
or rdx, rcx
mov ecx, edi
shl rax, 8
movzx edi, ch
shl rdx, 8
movzx ecx, r15b
or rax, rdi
or rdx, r12
shl rax, 8
shl rdx, 8
or rax, rsi
or rdx, r8
shl rax, 8
mov qword [rsp + 0x40], rdx
or rax, r11
shl rax, 8
or rax, r9
shl rax, 8
or rax, rbx
shl rax, 8
or rax, r10
shl rax, 8
or rax, rcx
mov qword [rsp + 0x48], rax
mov rax, qword [rbp + 0x20]
movdqu xmm0, xmmword [rsp + 0x40]
movups xmmword [rax], xmm0
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret