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

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x188
lea rbp, [rsp + 0x20]
lea rdi, [rsp + 0x20]
mov ecx, 0x2a
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x1a8]
lea rcx, [0x1400c900e]
call fcn.140036d19
mov dword [rbp + 4], 0
jmp 0x14003c23e
mov eax, dword [rbp + 4]
inc eax
mov dword [rbp + 4], eax
cmp dword [rbp + 4], 4
jae 0x14003c2fd
mov eax, dword [rbp + 4]
shl eax, 2
mov eax, eax
mov ecx, dword [rbp + 4]
shl ecx, 2
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov r8, qword [rbp + 0x188]
movzx eax, byte [r8 + rax]
mov byte [rdx + rcx], al
mov eax, dword [rbp + 4]
lea eax, [rax*4 + 1]
mov eax, eax
mov ecx, dword [rbp + 4]
lea ecx, [rcx*4 + 1]
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov r8, qword [rbp + 0x188]
movzx eax, byte [r8 + rax]
mov byte [rdx + rcx], al
mov eax, dword [rbp + 4]
lea eax, [rax*4 + 2]
mov eax, eax
mov ecx, dword [rbp + 4]
lea ecx, [rcx*4 + 2]
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov r8, qword [rbp + 0x188]
movzx eax, byte [r8 + rax]
mov byte [rdx + rcx], al
mov eax, dword [rbp + 4]
lea eax, [rax*4 + 3]
mov eax, eax
mov ecx, dword [rbp + 4]
lea ecx, [rcx*4 + 3]
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov r8, qword [rbp + 0x188]
movzx eax, byte [r8 + rax]
mov byte [rdx + rcx], al
jmp 0x14003c236
mov dword [rbp + 4], 4
jmp 0x14003c30e
mov eax, dword [rbp + 4]
inc eax
mov dword [rbp + 4], eax
cmp dword [rbp + 4], 0x2c
jae 0x14003c5f3
mov eax, dword [rbp + 4]
lea eax, [rax*4 - 4]
mov dword [rbp + 0x44], eax
mov eax, dword [rbp + 0x44]
mov eax, eax
mov ecx, 1
imul rcx, rcx, 0
mov rdx, qword [rbp + 0x180]
movzx eax, byte [rdx + rax]
mov byte [rbp + rcx + 0x64], al
mov eax, dword [rbp + 0x44]
inc eax
mov eax, eax
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rbp + 0x180]
movzx eax, byte [rdx + rax]
mov byte [rbp + rcx + 0x64], al
mov eax, dword [rbp + 0x44]
add eax, 2
mov eax, eax
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rbp + 0x180]
movzx eax, byte [rdx + rax]
mov byte [rbp + rcx + 0x64], al
mov eax, dword [rbp + 0x44]
add eax, 3
mov eax, eax
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rbp + 0x180]
movzx eax, byte [rdx + rax]
mov byte [rbp + rcx + 0x64], al
xor edx, edx
mov eax, dword [rbp + 4]
mov ecx, 4
div ecx
mov eax, edx
test eax, eax
jne 0x14003c50c
mov eax, 1
imul rax, rax, 0
movzx eax, byte [rbp + rax + 0x64]
mov byte [rbp + 0x84], al
mov eax, 1
imul rax, rax, 1
mov ecx, 1
imul rcx, rcx, 0
movzx eax, byte [rbp + rax + 0x64]
mov byte [rbp + rcx + 0x64], al
mov eax, 1
imul rax, rax, 2
mov ecx, 1
imul rcx, rcx, 1
movzx eax, byte [rbp + rax + 0x64]
mov byte [rbp + rcx + 0x64], al
mov eax, 1
imul rax, rax, 3
mov ecx, 1
imul rcx, rcx, 2
movzx eax, byte [rbp + rax + 0x64]
mov byte [rbp + rcx + 0x64], al
mov eax, 1
imul rax, rax, 3
movzx ecx, byte [rbp + 0x84]
mov byte [rbp + rax + 0x64], cl
mov eax, 1
imul rax, rax, 0
movzx eax, byte [rbp + rax + 0x64]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 0
movzx eax, byte [rcx + rax]
mov byte [rbp + rdx + 0x64], al
mov eax, 1
imul rax, rax, 1
movzx eax, byte [rbp + rax + 0x64]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 1
movzx eax, byte [rcx + rax]
mov byte [rbp + rdx + 0x64], al
mov eax, 1
imul rax, rax, 2
movzx eax, byte [rbp + rax + 0x64]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 2
movzx eax, byte [rcx + rax]
mov byte [rbp + rdx + 0x64], al
mov eax, 1
imul rax, rax, 3
movzx eax, byte [rbp + rax + 0x64]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 3
movzx eax, byte [rcx + rax]
mov byte [rbp + rdx + 0x64], al
mov eax, 1
imul rax, rax, 0
movzx eax, byte [rbp + rax + 0x64]
mov dword [rbp + 0x154], eax
xor edx, edx
mov eax, dword [rbp + 4]
mov ecx, 4
div ecx
mov eax, eax
lea rcx, [0x1400a9120]
movzx eax, byte [rcx + rax]
mov ecx, dword [rbp + 0x154]
xor ecx, eax
mov eax, ecx
mov ecx, 1
imul rcx, rcx, 0
mov byte [rbp + rcx + 0x64], al
mov eax, dword [rbp + 4]
shl eax, 2
mov dword [rbp + 0x24], eax
mov eax, dword [rbp + 4]
lea eax, [rax*4 - 0x10]
mov dword [rbp + 0x44], eax
mov eax, dword [rbp + 0x44]
mov eax, eax
mov rcx, qword [rbp + 0x180]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 0
movzx ecx, byte [rbp + rcx + 0x64]
xor eax, ecx
mov ecx, dword [rbp + 0x24]
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov byte [rdx + rcx], al
mov eax, dword [rbp + 0x44]
inc eax
mov eax, eax
mov rcx, qword [rbp + 0x180]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 1
movzx ecx, byte [rbp + rcx + 0x64]
xor eax, ecx
mov ecx, dword [rbp + 0x24]
inc ecx
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov byte [rdx + rcx], al
mov eax, dword [rbp + 0x44]
add eax, 2
mov eax, eax
mov rcx, qword [rbp + 0x180]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 2
movzx ecx, byte [rbp + rcx + 0x64]
xor eax, ecx
mov ecx, dword [rbp + 0x24]
add ecx, 2
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov byte [rdx + rcx], al
mov eax, dword [rbp + 0x44]
add eax, 3
mov eax, eax
mov rcx, qword [rbp + 0x180]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 3
movzx ecx, byte [rbp + rcx + 0x64]
xor eax, ecx
mov ecx, dword [rbp + 0x24]
add ecx, 3
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov byte [rdx + rcx], al
jmp 0x14003c306
lea rcx, [rbp - 0x20]
lea rdx, [0x1400a92f0]
call fcn.140036544
lea rsp, [rbp + 0x168]
pop rdi
pop rbp
ret