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

Disassembly:
sub rsp, 0x18
mov qword [rsp + 0x10], rbp
lea rbp, [rsp + 0x10]
mov rcx, qword [rsp + 0x28]
mov rdx, rcx
shr rcx, 2
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x20]
mov r8, qword [rsp + 0x30]
xor eax, eax
jmp 0x656e0fa0
bswap edx
mov dword [rbx + r9*4], edx
lea rax, [r9 + 1]
mov rdx, r10
nop
cmp rax, rcx
jge 0x656e0fef
mov r9, rax
shl rax, 2
cmp rdx, rax
jb 0x656e12dd
mov r10, rdx
sub rdx, rax
mov r11, rax
sub rax, r8
sar rax, 0x3f
and r11, rax
cmp rdx, 3
jbe 0x656e12d0
mov edx, dword [rdi + r11]
cmp r9, rsi
jb 0x656e0f92
nop dword [rax + rax]
jmp 0x656e12c5
mov dword [rbx + rdi*4], r9d
lea rax, [rdi + 1]
cmp rsi, rax
jle 0x656e1158
lea rdx, [rax - 1]
nop dword [rax]
cmp rsi, rdx
jbe 0x656e12b7
mov edx, dword [rbx + rax*4 - 4]
test rcx, rcx
je 0x656e12b2
mov rdi, rax
mov r8d, edx
nop dword [rax]
cmp rcx, 0xffffffffffffffff
je 0x656e102d
cqo
idiv rcx
jmp 0x656e1032
neg rax
xor edx, edx
test rdx, rdx
jne 0x656e10e0
lea rdx, [rax - 1]
rol r8d, 8
mov r9d, r8d
shr r8d, 0x18
lea r10, str.cw
movzx r8d, byte [r8 + r10]
shl r8d, 0x18
mov r11d, r9d
shr r9d, 0x10
movzx r9d, r9b
movzx r9d, byte [r9 + r10]
shl r9d, 0x10
or r8d, r9d
mov r9d, r11d
shr r11d, 8
movzx r11d, r11b
movzx r11d, byte [r11 + r10]
shl r11d, 8
or r11d, r8d
movzx r8d, r9b
movzx r8d, byte [r8 + r10]
or r8d, r11d
cmp rdx, 0x10
jae 0x656e12a5
lea rdx, [0x6570b590]
movzx r9d, byte [rax + rdx - 1]
shl r9d, 0x18
xor r9d, r8d
mov rax, rdi
sub rax, rcx
nop dword [rax + rax]
cmp rsi, rax
jbe 0x656e129c
xor r9d, dword [rbx + rax*4]
cmp rsi, rdi
ja 0x656e0fe7
jmp 0x656e1291
cmp rcx, 6
jle 0x656e114c
cmp rdx, 4
jne 0x656e114c
nop
mov r9d, r8d
shr r8d, 0x18
lea r10, str.cw
movzx edx, byte [r8 + r10]
shl edx, 0x18
mov r8d, r9d
shr r9d, 0x10
movzx r9d, r9b
movzx r9d, byte [r9 + r10]
shl r9d, 0x10
or edx, r9d
mov r9d, r8d
shr r8d, 8
movzx r8d, r8b
movzx r8d, byte [r8 + r10]
shl r8d, 8
or edx, r8d
movzx r8d, r9b
movzx r8d, byte [r8 + r10]
or edx, r8d
mov r9d, edx
lea rdx, [0x6570b590]
jmp 0x656e10b2
lea r10, str.cw
mov edx, r8d
jmp 0x656e113d
mov rdx, qword [rsp + 0x50]
nop dword [rax]
test rdx, rdx
je 0x656e1274
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
xor eax, eax
jmp 0x656e1257
mov dword [rdx + r10*4], r9d
inc r8
cmp r8, 4
jge 0x656e1250
lea r9, [r8 + rsi]
lea r9, [r9 - 4]
cmp rdi, r9
jbe 0x656e1286
mov r9d, dword [rbx + r9*4]
test rax, rax
jle 0x656e122b
lea r10, [rax + 4]
cmp rdi, r10
jle 0x656e122b
mov r10d, r9d
shr r9d, 0x18
lea r11, str.cw
movzx r12d, byte [r11 + r9]
lea r13, [0x65714c20]
mov r9d, dword [r13 + r12*4]
mov r12d, r10d
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r10 + r11]
lea r14, [0x65715020]
xor r9d, dword [r14 + r10*4]
mov r10d, r12d
shr r12d, 8
movzx r12d, r12b
movzx r12d, byte [r12 + r11]
lea r15, [0x65715420]
xor r9d, dword [r15 + r12*4]
movzx r10d, r10b
movzx r10d, byte [r10 + r11]
lea r12, [0x65715820]
xor r9d, dword [r12 + r10*4]
lea r10, [r8 + rax]
nop
cmp rcx, r10
ja 0x656e117a
jmp 0x656e127e
lea r11, str.cw
lea r12, [0x65715820]
lea r13, [0x65714c20]
lea r14, [0x65715020]
lea r15, [0x65715420]
jmp 0x656e121b
add rax, 4
mov rsi, rdi
cmp rsi, rax
jle 0x656e126a
mov rdi, rsi
sub rsi, rax
xor r8d, r8d
jmp 0x656e1181
mov rbp, qword [rsp + 0x10]
add rsp, 0x18
ret
mov rbp, qword [rsp + 0x10]
add rsp, 0x18
ret
mov rax, r10
call fcn.656a7a40
mov rax, r9
mov rcx, rdi
call fcn.656a7a40
mov rax, rdi
mov rcx, rsi
call fcn.656a7a40
mov rcx, rsi
nop
call fcn.656a7a40
mov rax, rdx
mov ecx, 0x10
call fcn.656a7a40
call fcn.65675060
mov rax, rdx
mov rcx, rsi
nop dword [rax]
call fcn.656a7a40
mov rax, r9
mov rcx, rsi
call fcn.656a7a40
mov eax, 3
mov rcx, rdx
call fcn.656a7a40
mov rcx, rdx
call fcn.656a7b00
nop
int3