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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov qword [rsp + 0x20], rdx
mov r15, rcx
mov ecx, 0xc0
call fcn.00401672
mov rdi, rax
xor r11d, r11d
mov r9d, 0x59df8306
lea rsi, [0x0044ff52]
mov r8d, 0x9bd27543
jmp 0x40dda2
mov ebp, 0
mov eax, 0xffffffff
cmove ebp, eax
mov eax, 0x9bd27543
cmove r8d, eax
sub r11d, ebp
nop word cs:[rax + rax]
cmp r8d, 0x1233ccc0
jge 0x40dde2
cmp r8d, 0xb146a36c
jge 0x40de12
cmp r8d, 0xa8505d6d
jge 0x40deed
cmp r8d, 0x9bd27543
jne 0x40dda2
cmp r11d, 4
mov r8d, 0xdfc1fd90
mov eax, 0x1997fec2
cmovb r8d, eax
jmp 0x40dda2
cmp r8d, 0x273d11d1
jge 0x40de82
cmp r8d, 0x1997fec2
jge 0x40dfb7
cmp r8d, 0x1233ccc0
jne 0x40dda2
jmp 0x40e075
cmp r8d, 0xb8b3cfcc
jge 0x40e008
cmp r8d, 0xb146a36c
jne 0x40dda2
lea eax, [r11*4 - 4]
movzx r10d, byte [rdi + rax]
lea edx, [r11*4 - 3]
movzx r13d, byte [rdi + rdx]
lea ebp, [r11*4 - 2]
movzx r14d, byte [rdi + rbp]
lea ebp, [r11*4 - 1]
movzx r12d, byte [rdi + rbp]
test r11b, 3
mov r8d, 0xa8505d6d
mov eax, 0x273d11d1
cmove r8d, eax
jmp 0x40dda2
cmp r8d, 0x59df8306
jge 0x40e031
cmp r8d, 0x273d11d1
jne 0x40dda2
movzx edx, r13b
movzx ecx, byte [rdx + rsi]
movzx edx, r14b
movzx r13d, byte [rdx + rsi]
movzx ebp, r12b
movzx r14d, byte [rbp + rsi]
movzx eax, r10b
movzx r12d, byte [rax + rsi]
mov eax, r11d
shr eax, 2
lea rdx, [0x00450052]
movzx r10d, byte [rax + rdx]
mov ebx, ecx
not bl
and bl, r10b
not r10b
and r10b, cl
or r10b, bl
mov r8d, 0xa8505d6d
jmp 0x40dda2
jne 0x40dda2
lea ebp, [r11*4]
lea ecx, [r11*4 - 0x10]
movzx ecx, byte [rdi + rcx]
mov eax, r10d
not al
and al, cl
not cl
and cl, r10b
or al, cl
mov byte [rdi + rbp], al
mov eax, 0x10
sub eax, ebp
mov ecx, 1
sub ecx, eax
movzx eax, byte [rdi + rcx]
mov ecx, eax
not cl
and cl, 0x9e
and al, 0x61
mov edx, r13d
not dl
and dl, 0x9e
mov ebx, r13d
and bl, 0x61
or al, cl
or bl, dl
xor bl, al
lea eax, [r11*4 + 1]
mov byte [rdi + rax], bl
lea eax, [r11*4 - 0xe]
movzx eax, byte [rdi + rax]
mov ecx, r14d
not cl
and cl, al
not al
and al, r14b
or cl, al
neg ebp
mov eax, 2
sub eax, ebp
mov byte [rdi + rax], cl
lea eax, [r11*4 - 0xd]
movzx eax, byte [rdi + rax]
mov ecx, eax
not cl
and cl, 0xb8
and al, 0x47
mov edx, r12d
not dl
and dl, 0xb8
mov ebx, r12d
and bl, 0x47
or al, cl
or bl, dl
xor bl, al
lea eax, [r11*4 + 3]
mov byte [rdi + rax], bl
mov r8d, 0xb8b3cfcc
jmp 0x40dda2
jne 0x40dda2
lea ebp, [r11*4]
movzx ebx, byte [r15 + rbp]
mov byte [rdi + rbp], bl
lea ebp, [r11*4 + 1]
movzx ebx, byte [r15 + rbp]
mov byte [rdi + rbp], bl
lea ebp, [r11*4 + 2]
movzx ebx, byte [r15 + rbp]
mov byte [rdi + rbp], bl
lea ebp, [r11*4 + 3]
movzx ebx, byte [r15 + rbp]
mov byte [rdi + rbp], bl
mov r8d, 0x5d40d6f3
jmp 0x40dda2
cmp r8d, 0xdfc1fd90
jge 0x40e063
cmp r8d, 0xb8b3cfcc
mov ebp, 0
mov eax, 0xffffffff
cmove ebp, eax
cmove r8d, r9d
sub r11d, ebp
jmp 0x40dda2
cmp r8d, 0x5d40d6f3
jge 0x40dd7f
cmp r8d, 0x59df8306
jne 0x40dda2
cmp r11d, 0x2c
mov r8d, 0x1233ccc0
mov eax, 0xb146a36c
cmovb r8d, eax
jmp 0x40dda2
mov eax, 4
cmove r11d, eax
cmove r8d, r9d
jmp 0x40dda2
mov rcx, rdi
add rcx, 0xb0
mov rax, qword [0x0045042a]
movabs rdx, 0x4b775233edddb32d
and rdx, rax
not rax
movabs rbp, 0xb488adcc12224cd2
and rbp, rax
or rdx, rbp
movabs rax, 0x88a2006a00002216
xor rax, rdx
movabs rbp, 0x20500041c095500
xor rbp, rdx
movabs rdx, 0x64d8b955c1b5540
and rdx, rbp
movabs rbp, 0xf9b2746aa3e4aabf
and rbp, rax
or rbp, rdx
movabs rbx, 0x3e2fada2c4d5f13a
xor rbx, rbp
mov r8d, 0x10
mov rdx, qword [rsp + 0x20]
call rbx
mov rax, rdi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret