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

Disassembly:
sub rsp, 8
mov qword [rsp], rbp
lea rbp, [rsp]
mov rcx, qword [rsp + 0x18]
mov rdx, rcx
sar rcx, 0x3f
shr rcx, 0x3e
add rcx, rdx
sar rcx, 2
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x10]
xor eax, eax
cmp rax, rcx
jge 0x557472
mov r8, rax
shl rax, 2
cmp rax, rdx
jae 0x557717
movzx r9d, byte [rdi + rax]
lea r10, [rax + 1]
cmp r10, rdx
jae 0x557717
movzx r10d, byte [rdi + rax + 1]
shl r10d, 0x10
shl r9d, 0x18
or r10d, r9d
lea r9, [rax + 2]
cmp r9, rdx
jae 0x557717
movzx r9d, byte [rdi + rax + 2]
shl r9d, 8
or r10d, r9d
lea r9, [rax + 3]
cmp r9, rdx
jae 0x557717
movzx r9d, byte [rdi + rax + 3]
or r10d, r9d
cmp r8, rsi
jae 0x557717
mov dword [rbx + r8*4], r10d
lea rax, [r8 + 1]
cmp rax, rcx
jl 0x5573f9
cmp rax, rsi
jge 0x557553
lea rdx, [rax - 1]
cmp rdx, rsi
jae 0x557710
mov edx, dword [rbx + rax*4 - 4]
test rcx, rcx
je 0x557709
mov rdi, rax
mov r8d, edx
cmp rcx, 0xffffffffffffffff
je 0x5576ff
cqo
idiv rcx
test rdx, rdx
jne 0x55768c
rol r8d, 8
mov edx, r8d
shr r8d, 0x18
lea r9, str.cw
movzx r8d, byte [r9 + r8]
mov r10d, edx
shr edx, 0x10
movzx edx, dl
movzx edx, byte [r9 + rdx]
movzx r11d, r10b
movzx r11d, byte [r9 + r11]
shr r10d, 8
movzx r10d, r10b
movzx r10d, byte [r9 + r10]
shl r8d, 0x18
shl edx, 0x10
or r8d, edx
shl r10d, 8
or r8d, r10d
or r8d, r11d
lea rdx, [rax - 1]
cmp rdx, 0x10
jae 0x557685
lea rdx, [0x007e36f0]
movzx r10d, byte [rdx + rax - 1]
shl r10d, 0x18
xor r8d, r10d
mov r10, rdi
sub rdi, rcx
cmp rdi, rsi
jae 0x55767e
mov edi, dword [rbx + rdi*4]
xor edi, r8d
cmp r10, rsi
jae 0x55767e
mov dword [rbx + r10*4], edi
lea rax, [r10 + 1]
cmp rax, rsi
jl 0x55747b
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x557675
mov rcx, qword [rsp + 0x48]
xor edx, edx
cmp rdx, rsi
jge 0x557647
mov rdi, rsi
sub rsi, rdx
xor r8d, r8d
cmp r8, 4
jge 0x557637
lea r9, [rsi + r8 - 4]
cmp r9, rdi
jae 0x55766e
mov r9d, dword [rbx + r9*4]
test rdx, rdx
jle 0x557657
lea r10, [rdx + 4]
cmp r10, rdi
jge 0x557657
mov r10d, r9d
shr r9d, 0x18
lea r11, str.cw
movzx r9d, byte [r11 + r9]
lea r12, [0x007f4d80]
mov r9d, dword [r12 + r9*4]
mov r13d, r10d
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r11 + r10]
lea r14, [0x007f5180]
mov r10d, dword [r14 + r10*4]
mov r15d, r13d
shr r13d, 8
movzx r13d, r13b
movzx r13d, byte [r11 + r13]
lea r14, [0x007f5580]
mov r13d, dword [r14 + r13*4]
movzx r15d, r15b
movzx r15d, byte [r11 + r15]
lea r14, [0x007f5980]
mov r15d, dword [r14 + r15*4]
xor r9d, r10d
xor r9d, r13d
xor r9d, r15d
lea r10, [rdx + r8]
cmp r10, rcx
jae 0x557650
mov dword [rax + r10*4], r9d
inc r8
cmp r8, 4
jl 0x557584
add rdx, 4
mov rsi, rdi
cmp rdx, rsi
jl 0x557571
mov rbp, qword [rsp]
add rsp, 8
ret
call fcn.004293e0
ud2
lea r11, str.cw
lea r12, [0x007f4d80]
lea r14, [0x007f5980]
jmp 0x55761d
call fcn.004293e0
ud2
mov rbp, qword [rsp]
add rsp, 8
ret
call fcn.004293e0
ud2
call fcn.004293e0
ud2
cmp rcx, 6
jle 0x5576f3
cmp rdx, 4
jne 0x5576f3
mov edx, r8d
shr r8d, 0x10
movzx r8d, r8b
lea r9, str.cw
movzx r8d, byte [r9 + r8]
mov r10d, edx
shr edx, 0x18
movzx edx, byte [r9 + rdx]
movzx r11d, r10b
movzx r11d, byte [r9 + r11]
shr r10d, 8
movzx r10d, r10b
movzx r10d, byte [r9 + r10]
shl edx, 0x18
shl r8d, 0x10
or edx, r8d
shl r10d, 8
or r10d, edx
or r10d, r11d
lea rdx, [0x007e36f0]
mov r8d, r10d
jmp 0x557524
lea r9, str.cw
mov r10d, r8d
jmp 0x5576e4
neg rax
xor edx, edx
jmp 0x5574aa
call fcn.004294c0
ud2
call fcn.004293e0
ud2
call fcn.004293e0
ud2