Function at 0x4053b0
Capabilities:
Encrypt data using aes

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
test rcx, rcx
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0xb0], r8
je 0x405725
cmp qword [rsp + 0xa8], 0
je 0x405757
cmp qword [rsp + 0xb0], 0
je 0x40573e
mov eax, dword [rcx]
mov ebp, dword [rcx + 4]
mov r9, r8
mov r12d, dword [rcx + 8]
mov r13d, dword [rcx + 0xc]
lea rdi, [0x0043dd20]
lea rsi, [0x0043c920]
lea r11, [0x0043d120]
lea r10, [0x0043cd20]
bswap eax
bswap ebp
xor eax, dword [r8]
xor ebp, dword [r8 + 4]
bswap r12d
bswap r13d
xor r12d, dword [r8 + 8]
xor r13d, dword [r8 + 0xc]
mov r8d, dword [r8 + 0x1e0]
mov edx, r8d
mov dword [rsp + 0x20], r8d
sar edx, 1
lea ecx, [rdx - 1]
mov dword [rsp + 0x4c], ecx
add rcx, 1
shl rcx, 5
add rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x40], rcx
jmp 0x4054ec
mov eax, dword [rdi + r14*4]
xor eax, dword [rsi + r12*4]
mov ebx, ebx
mov r14d, dword [rsp + 0x24]
mov r12d, dword [rsp + 0x28]
mov edx, dword [rsp + 0x34]
xor eax, r8d
xor eax, dword [r11 + rbp*4]
mov r8d, dword [rsp + 0x2c]
xor eax, dword [r10 + r13*4]
mov r13d, dword [rsp + 0x30]
mov ebp, dword [rdi + r14*4]
mov r14d, dword [rsp + 0x3c]
xor ebp, dword [rsi + r13*4]
mov r13d, dword [rsp + 0x48]
xor ebp, dword [r9 + 4]
xor ebp, dword [r11 + r12*4]
mov r12d, dword [rdi + rdx*4]
xor r12d, dword [rsi + r15*4]
mov r15d, dword [rsp + 0x38]
mov r13d, dword [rdi + r13*4]
xor r13d, dword [rsi + rcx*4]
mov ecx, dword [rsp + 0x20]
xor r12d, dword [r9 + 8]
xor r13d, dword [r9 + 0xc]
xor ebp, dword [r10 + r8*4]
xor r12d, dword [r11 + r15*4]
xor r12d, dword [r10 + r14*4]
xor r13d, dword [r11 + rcx*4]
xor r13d, dword [r10 + rbx*4]
mov r14d, eax
movzx r15d, r13b
mov r8d, ebp
shr r14d, 0x18
shr r8d, 0x10
mov ecx, r12d
mov r14d, dword [rdi + r14*4]
xor r14d, dword [rsi + r15*4]
movzx edx, r8b
xor r14d, dword [r9 + 0x10]
mov r15d, ebp
movzx ebx, ch
xor r14d, dword [r11 + rdx*4]
shr r15d, 0x18
movzx r8d, al
mov edx, r12d
xor r14d, dword [r10 + rbx*4]
mov ebx, dword [rdi + r15*4]
shr edx, 0x10
xor ebx, dword [rsi + r8*4]
mov r15d, r12d
xor ebx, dword [r9 + 0x14]
movzx ecx, dl
mov edx, r13d
xor ebx, dword [r11 + rcx*4]
shr r15d, 0x18
movzx ecx, dh
movzx r8d, bpl
xor ebx, dword [r10 + rcx*4]
shr edx, 0x10
mov ecx, dword [rdi + r15*4]
xor ecx, dword [rsi + r8*4]
movzx r15d, dl
xor ecx, dword [r9 + 0x18]
shr r13d, 0x18
movzx r8d, r12b
xor ecx, dword [r11 + r15*4]
movzx edx, ah
mov r12d, dword [rdi + r13*4]
shr eax, 0x10
xor r12d, dword [rsi + r8*4]
xor ecx, dword [r10 + rdx*4]
xor r12d, dword [r9 + 0x1c]
movzx eax, al
mov edx, ebp
xor r12d, dword [r11 + rax*4]
mov r13d, ebx
movzx ebp, dh
shr r13d, 0x10
mov r15d, ebx
mov dword [rsp + 0x20], r14d
movzx edx, ch
shr r15d, 0x18
add r9, 0x20
mov dword [rsp + 0x24], r15d
mov r8d, dword [r9]
shr r14d, 0x18
mov eax, r12d
xor eax, dword [r10 + rbp*4]
movzx ebp, r13b
mov r13d, edx
mov edx, ecx
shr edx, 0x10
movzx r15d, dl
mov dword [rsp + 0x28], r15d
movzx r15d, byte [rsp + 0x20]
movzx edx, ah
mov dword [rsp + 0x2c], edx
mov edx, ecx
movzx r12d, al
shr edx, 0x18
movzx ecx, cl
mov dword [rsp + 0x34], edx
mov dword [rsp + 0x30], r15d
mov r15d, eax
shr eax, 0x18
shr r15d, 0x10
mov dword [rsp + 0x48], eax
movzx edx, r15b
movzx r15d, bl
movzx ebx, bh
mov dword [rsp + 0x38], edx
mov edx, dword [rsp + 0x20]
movzx edx, dh
mov dword [rsp + 0x3c], edx
mov eax, dword [rsp + 0x20]
shr eax, 0x10
cmp r9, qword [rsp + 0x40]
movzx edx, al
mov dword [rsp + 0x20], edx
jne 0x405470
lea r9, [0x0043bd20]
lea r10, [0x0043b920]
lea r11, [0x0043c120]
lea rsi, [0x0043c520]
mov eax, r8d
mov r8d, dword [rsp + 0x4c]
mov edi, dword [r10 + r14*4]
xor edi, dword [r9 + rbp*4]
mov ebx, ebx
mov rbp, qword [rsp + 0xa8]
mov edx, dword [rsp + 0x28]
mov r15d, dword [rsi + r15*4]
add r8, 1
xor eax, edi
xor eax, dword [r11 + r13*4]
shl r8, 5
xor eax, dword [rsi + r12*4]
mov r12d, dword [rsp + 0x24]
add r8, qword [rsp + 0xb0]
mov r13d, dword [rsp + 0x2c]
mov edi, dword [rsp + 0x34]
bswap eax
mov r14d, dword [r10 + r12*4]
xor r14d, dword [r9 + rdx*4]
mov dword [rbp], eax
mov eax, dword [rsp + 0x30]
xor r14d, dword [r8 + 4]
mov r12d, dword [rsp + 0x38]
xor r14d, dword [r11 + r13*4]
mov edx, dword [r10 + rdi*4]
mov edi, dword [rsp + 0x48]
xor r14d, dword [rsi + rax*4]
mov eax, dword [rsp + 0x3c]
xor edx, dword [r9 + r12*4]
mov r12d, dword [rsp + 0x20]
mov r10d, dword [r10 + rdi*4]
bswap r14d
mov dword [rbp + 4], r14d
mov r14d, dword [r8 + 8]
xor r10d, dword [r9 + r12*4]
xor r14d, edx
mov r13d, r14d
xor r13d, dword [r11 + rax*4]
xor eax, eax
xor r15d, r13d
bswap r15d
mov dword [rbp + 8], r15d
xor r10d, dword [r8 + 0xc]
xor r10d, dword [r11 + rbx*4]
xor r10d, dword [rsi + rcx*4]
bswap r10d
mov dword [rbp + 0xc], r10d
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, [0x00439b80]
lea rcx, [0x00439b96]
mov r8d, 0x124
call fcn.00409b50
lea rdx, [0x00439b80]
lea rcx, [0x00439bac]
mov r8d, 0x126
call fcn.00409b50
lea rdx, [0x00439b80]
lea rcx, [0x00439ba1]
mov r8d, 0x125
call fcn.00409b50
nop
nop dword [rax + rax]
nop word cs:[rax + rax]