Function at 0x4037a0
Capabilities:
Encrypt data using aes

Disassembly:
push r15
mov r10, rcx
lea r11, [0x00412f00]
push r14
push r13
push r12
push rbp
lea rbp, [0x00412700]
push rdi
lea rdi, [0x00413300]
push rsi
push rbx
sub rsp, 0x48
mov r9d, dword [rdx]
mov ecx, dword [rdx + 4]
mov eax, dword [rdx + 8]
mov r12d, dword [rdx + 0xc]
mov qword [rsp + 0xa0], r8
mov edx, dword [r10 + 4]
bswap ecx
bswap r9d
xor r9d, dword [r10]
bswap eax
xor eax, dword [r10 + 8]
bswap r12d
xor r12d, dword [r10 + 0xc]
xor edx, ecx
mov ecx, dword [r10 + 0x1e0]
mov r8d, edx
mov edx, r9d
mov r9d, eax
shr ecx, 1
sub ecx, 1
add rcx, 1
shl rcx, 5
lea rsi, [r10 + rcx]
mov qword [rsp + 0x38], rsi
lea rsi, [0x00412b00]
jmp 0x403557
mov edx, dword [rsp + 0xc]
mov eax, dword [rbp + r8*4]
mov ebx, ebx
xor eax, dword [rdi + r14*4]
xor eax, dword [rsp + 0x14]
xor eax, dword [rsi + rdx*4]
mov edx, dword [rsp + 0x10]
mov r8d, dword [r11 + rdx*4]
xor r8d, eax
mov eax, dword [rsp + 0x34]
mov edx, r8d
mov r8d, dword [rbp + r15*4]
xor r8d, dword [rdi + r13*4]
xor r8d, r12d
xor r8d, dword [rsi + rax*4]
mov eax, dword [rsp + 0x18]
mov r12d, dword [rsp + 0x24]
xor r8d, dword [r11 + rax*4]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rbp + rax*4]
xor eax, dword [rdi + r12*4]
xor eax, dword [rsp + 0x28]
xor eax, dword [rsi + r9*4]
mov r9d, dword [rsp + 0x20]
mov r12d, dword [rsp + 0x2c]
mov r15d, dword [r11 + r9*4]
mov r12d, dword [rbp + r12*4]
xor r15d, eax
mov eax, dword [rsp + 8]
mov r9d, r15d
xor r12d, dword [rdi + rax*4]
xor r12d, dword [rsp + 0x30]
xor r12d, dword [rsi + rcx*4]
xor r12d, dword [r11 + rbx*4]
mov eax, edx
movzx ebx, r12b
movzx r13d, dl
add r10, 0x20
shr eax, 0x18
mov ecx, dword [rbp + rax*4]
mov eax, r8d
xor ecx, dword [rdi + rbx*4]
shr eax, 0x10
xor ecx, dword [r10 - 0x10]
movzx eax, al
xor ecx, dword [rsi + rax*4]
mov eax, r9d
movzx eax, ah
xor ecx, dword [r11 + rax*4]
mov eax, r8d
shr eax, 0x18
mov r14d, ecx
movzx ecx, dh
shr edx, 0x10
mov ebx, dword [rbp + rax*4]
mov eax, r9d
xor ebx, dword [rdi + r13*4]
movzx r13d, r8b
shr eax, 0x10
xor ebx, dword [r10 - 0xc]
movzx edx, dl
movzx eax, al
xor ebx, dword [rsi + rax*4]
mov eax, r12d
movzx eax, ah
xor ebx, dword [r11 + rax*4]
mov eax, r9d
shr eax, 0x18
mov eax, dword [rbp + rax*4]
xor eax, dword [rdi + r13*4]
mov r13d, r12d
shr r12d, 0x18
shr r13d, 0x10
xor eax, dword [r10 - 8]
movzx r13d, r13b
xor eax, dword [rsi + r13*4]
movzx r13d, r9b
mov r9d, dword [rbp + r12*4]
xor r9d, dword [rdi + r13*4]
xor r9d, dword [r10 - 4]
mov r13d, r14d
xor r9d, dword [rsi + rdx*4]
xor eax, dword [r11 + rcx*4]
mov ecx, r8d
mov r8d, r14d
mov edx, r9d
mov r9d, ebx
movzx ecx, ch
mov r15d, dword [r10]
shr r9d, 0x10
xor edx, dword [r11 + rcx*4]
mov r12d, dword [r10 + 4]
shr r8d, 0x18
movzx ecx, r9b
mov r9d, eax
movzx r14d, dl
mov dword [rsp + 0x14], r15d
mov dword [rsp + 0xc], ecx
movzx ecx, ah
shr r9d, 0x10
mov r15d, ebx
mov dword [rsp + 0x10], ecx
movzx ecx, dh
movzx r9d, r9b
shr r15d, 0x18
mov dword [rsp + 0x18], ecx
mov ecx, r13d
movzx r13d, r13b
mov dword [rsp + 8], ecx
movzx ecx, ch
mov dword [rsp + 0x34], r9d
mov r9d, eax
mov dword [rsp + 0x20], ecx
movzx ecx, bl
shr r9d, 0x18
movzx ebx, bh
mov dword [rsp + 0x24], ecx
mov ecx, dword [r10 + 8]
mov dword [rsp + 0x1c], r9d
mov r9d, edx
shr edx, 0x18
mov dword [rsp + 0x28], ecx
mov ecx, dword [rsp + 8]
shr r9d, 0x10
mov dword [rsp + 0x2c], edx
movzx edx, al
movzx r9d, r9b
mov dword [rsp + 8], edx
mov edx, dword [r10 + 0xc]
shr ecx, 0x10
movzx ecx, cl
mov dword [rsp + 0x30], edx
cmp qword [rsp + 0x38], r10
jne 0x4034d0
mov edx, r12d
mov r12d, dword [rsp + 0x34]
mov dword [rsp + 0x38], r8d
lea rdi, [0x00414700]
lea rsi, [0x00414300]
mov r8d, ebx
mov ebx, ecx
mov ecx, dword [rdi + r15*4]
xor ecx, dword [rsi + r12*4]
lea r11, [0x00413f00]
mov eax, dword [rsp + 0x20]
mov r8d, r8d
xor ecx, edx
mov edx, dword [rsp + 0x18]
lea r10, [0x00413b00]
xor ecx, dword [r11 + rdx*4]
mov edx, dword [rsp + 0x1c]
xor ecx, dword [r10 + r13*4]
mov ebp, ecx
mov ecx, r9d
mov edx, dword [rdi + rdx*4]
mov r9d, dword [rsp + 0x2c]
xor edx, dword [rsi + rcx*4]
mov ecx, dword [rsp + 8]
xor edx, dword [rsp + 0x28]
xor edx, dword [r11 + rax*4]
mov eax, dword [rsp + 0x24]
xor edx, dword [r10 + rax*4]
mov eax, dword [rdi + r9*4]
xor eax, dword [rsi + rbx*4]
xor eax, dword [rsp + 0x30]
bswap edx
xor eax, dword [r11 + r8*4]
mov r8d, dword [rsp + 0x38]
xor eax, dword [r10 + rcx*4]
mov ecx, dword [rsp + 0xc]
mov r9d, dword [rdi + r8*4]
mov rdi, qword [rsp + 0xa0]
bswap eax
xor r9d, dword [rsi + rcx*4]
mov ecx, dword [rsp + 0x10]
xor r9d, dword [rsp + 0x14]
xor r9d, dword [r11 + rcx*4]
mov ecx, r14d
xor r9d, dword [r10 + rcx*4]
mov ecx, ebp
bswap r9d
bswap ecx
mov dword [rdi], r9d
mov dword [rdi + 4], ecx
mov dword [rdi + 8], edx
mov dword [rdi + 0xc], eax
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8, rdx
jmp 0x403440