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

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x40
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov dword [rbp - 8], 0
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x1c]
sub eax, 6
mov dword [rbp - 0x14], eax
mov dword [rbp - 4], 0
jmp 0x209019e4e
mov eax, dword [rbp - 4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x18]
add rax, rdx
lea rdx, [rbp - 0x40]
mov ecx, dword [rbp - 4]
movsxd rcx, ecx
shl rcx, 2
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
add dword [rbp - 4], 1
mov eax, dword [rbp - 4]
cmp eax, dword [rbp - 0x14]
jl 0x209019e21
mov dword [rbp - 0xc], 0
mov dword [rbp - 0x10], 0
mov dword [rbp - 4], 0
jmp 0x209019ecc
lea rax, [rbp - 0x40]
mov edx, dword [rbp - 4]
movsxd rdx, edx
shl rdx, 2
add rax, rdx
mov edx, dword [rbp - 0x10]
movsxd rdx, edx
mov ecx, dword [rbp - 0xc]
shl rcx, 2
add rdx, rcx
add rdx, 8
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x10]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
add dword [rbp - 4], 1
add dword [rbp - 0x10], 1
mov eax, dword [rbp - 4]
cmp eax, dword [rbp - 0x14]
jge 0x209019ebb
cmp dword [rbp - 0x10], 3
jle 0x209019e6d
cmp dword [rbp - 0x10], 4
jne 0x209019ecc
add dword [rbp - 0xc], 1
mov dword [rbp - 0x10], 0
mov eax, dword [rbp - 4]
cmp eax, dword [rbp - 0x14]
jge 0x20901a262
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x1c]
cmp eax, dword [rbp - 0xc]
jae 0x209019ead
jmp 0x20901a262
movzx ecx, byte [rbp - 0x40]
mov eax, dword [rbp - 0x14]
sub eax, 1
cdqe
movzx eax, byte [rbp + rax*4 - 0x3f]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
xor eax, ecx
mov byte [rbp - 0x40], al
movzx ecx, byte [rbp - 0x3f]
mov eax, dword [rbp - 0x14]
sub eax, 1
cdqe
movzx eax, byte [rbp + rax*4 - 0x3e]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
xor eax, ecx
mov byte [rbp - 0x3f], al
movzx ecx, byte [rbp - 0x3e]
mov eax, dword [rbp - 0x14]
sub eax, 1
cdqe
movzx eax, byte [rbp + rax*4 - 0x3d]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
xor eax, ecx
mov byte [rbp - 0x3e], al
movzx ecx, byte [rbp - 0x3d]
mov eax, dword [rbp - 0x14]
sub eax, 1
cdqe
movzx eax, byte [rbp + rax*4 - 0x40]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
xor eax, ecx
mov byte [rbp - 0x3d], al
mov eax, dword [rbp - 8]
lea edx, [rax + 1]
mov dword [rbp - 8], edx
cdqe
lea rdx, [rax*4]
lea rax, [0x2090935a0]
mov edx, dword [rdx + rax]
movzx eax, byte [rbp - 0x40]
xor eax, edx
mov byte [rbp - 0x40], al
cmp dword [rbp - 0x14], 8
je 0x20901a006
mov dword [rbp - 4], 1
jmp 0x209019ff9
lea rax, [rbp - 0x40]
mov edx, dword [rbp - 4]
movsxd rdx, edx
shl rdx, 2
add rax, rdx
mov ecx, dword [rax]
mov eax, dword [rbp - 4]
lea edx, [rax - 1]
lea rax, [rbp - 0x40]
movsxd rdx, edx
shl rdx, 2
add rax, rdx
mov edx, dword [rax]
lea rax, [rbp - 0x40]
mov r8d, dword [rbp - 4]
movsxd r8, r8d
shl r8, 2
add rax, r8
xor edx, ecx
mov dword [rax], edx
add dword [rbp - 4], 1
mov eax, dword [rbp - 4]
cmp eax, dword [rbp - 0x14]
jl 0x209019fb6
jmp 0x20901a1e6
mov dword [rbp - 4], 1
jmp 0x20901a052
lea rax, [rbp - 0x40]
mov edx, dword [rbp - 4]
movsxd rdx, edx
shl rdx, 2
add rax, rdx
mov ecx, dword [rax]
mov eax, dword [rbp - 4]
lea edx, [rax - 1]
lea rax, [rbp - 0x40]
movsxd rdx, edx
shl rdx, 2
add rax, rdx
mov edx, dword [rax]
lea rax, [rbp - 0x40]
mov r8d, dword [rbp - 4]
movsxd r8, r8d
shl r8, 2
add rax, r8
xor edx, ecx
mov dword [rax], edx
add dword [rbp - 4], 1
mov eax, dword [rbp - 0x14]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
cmp dword [rbp - 4], eax
jl 0x20901a00f
mov eax, dword [rbp - 0x14]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov ecx, eax
movsxd rax, ecx
movzx r8d, byte [rbp + rax*4 - 0x40]
mov eax, dword [rbp - 0x14]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
sub eax, 1
cdqe
movzx eax, byte [rbp + rax*4 - 0x40]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
mov edx, r8d
xor edx, eax
movsxd rax, ecx
mov byte [rbp + rax*4 - 0x40], dl
mov eax, dword [rbp - 0x14]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov ecx, eax
movsxd rax, ecx
movzx r8d, byte [rbp + rax*4 - 0x3f]
mov eax, dword [rbp - 0x14]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
sub eax, 1
cdqe
movzx eax, byte [rbp + rax*4 - 0x3f]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
mov edx, r8d
xor edx, eax
movsxd rax, ecx
mov byte [rbp + rax*4 - 0x3f], dl
mov eax, dword [rbp - 0x14]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov ecx, eax
movsxd rax, ecx
movzx r8d, byte [rbp + rax*4 - 0x3e]
mov eax, dword [rbp - 0x14]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
sub eax, 1
cdqe
movzx eax, byte [rbp + rax*4 - 0x3e]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
mov edx, r8d
xor edx, eax
movsxd rax, ecx
mov byte [rbp + rax*4 - 0x3e], dl
mov eax, dword [rbp - 0x14]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov ecx, eax
movsxd rax, ecx
movzx r8d, byte [rbp + rax*4 - 0x3d]
mov eax, dword [rbp - 0x14]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
sub eax, 1
cdqe
movzx eax, byte [rbp + rax*4 - 0x3d]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
mov edx, r8d
xor edx, eax
movsxd rax, ecx
mov byte [rbp + rax*4 - 0x3d], dl
mov eax, dword [rbp - 0x14]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
add eax, 1
mov dword [rbp - 4], eax
jmp 0x20901a1de
lea rax, [rbp - 0x40]
mov edx, dword [rbp - 4]
movsxd rdx, edx
shl rdx, 2
add rax, rdx
mov ecx, dword [rax]
mov eax, dword [rbp - 4]
lea edx, [rax - 1]
lea rax, [rbp - 0x40]
movsxd rdx, edx
shl rdx, 2
add rax, rdx
mov edx, dword [rax]
lea rax, [rbp - 0x40]
mov r8d, dword [rbp - 4]
movsxd r8, r8d
shl r8, 2
add rax, r8
xor edx, ecx
mov dword [rax], edx
add dword [rbp - 4], 1
mov eax, dword [rbp - 4]
cmp eax, dword [rbp - 0x14]
jl 0x20901a19b
mov dword [rbp - 4], 0
jmp 0x20901a24e
lea rax, [rbp - 0x40]
mov edx, dword [rbp - 4]
movsxd rdx, edx
shl rdx, 2
add rax, rdx
mov edx, dword [rbp - 0x10]
movsxd rdx, edx
mov ecx, dword [rbp - 0xc]
shl rcx, 2
add rdx, rcx
add rdx, 8
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x10]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
add dword [rbp - 4], 1
add dword [rbp - 0x10], 1
mov eax, dword [rbp - 4]
cmp eax, dword [rbp - 0x14]
jge 0x20901a23d
cmp dword [rbp - 0x10], 3
jle 0x20901a1ef
cmp dword [rbp - 0x10], 4
jne 0x20901a24e
add dword [rbp - 0xc], 1
mov dword [rbp - 0x10], 0
mov eax, dword [rbp - 4]
cmp eax, dword [rbp - 0x14]
jge 0x20901a262
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x1c]
cmp eax, dword [rbp - 0xc]
jae 0x20901a22f
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x1c]
cmp eax, dword [rbp - 0xc]
jae 0x209019ee9
nop
nop
add rsp, 0x40
pop rbp
ret