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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov r13, rcx
mov rbx, rdx
mov r14d, r8d
mov rbp, r9
test r9, r9
je 0x753000
mov r12, qword [r9]
mov r9d, 0x8000000
mov qword [rsp + 0x38], r12
test r12, r12
je 0x752e53
mov r15d, dword [rbx + 4]
mov eax, r15d
and eax, 0x800
test r14d, r14d
je 0x752d20
cmp byte [rbx], 0xb2
je 0x752ccf
and r15d, 0x1000000
je 0x752fc0
xor r15d, r15d
mov edx, 0x48
test eax, eax
jne 0x752e70
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x752e70
mov dword [rsp + 0x2c], edx
mov dword [rsp + 0x28], r9d
call sub.msvcrt.dll_strlen
mov r9d, dword [rsp + 0x28]
mov edx, dword [rsp + 0x2c]
mov r8d, eax
and r8d, 0x3fffffff
add r8d, 1
jmp 0x752e73
test eax, eax
je 0x752f38
xor r8d, r8d
test r15d, 0x10000
jne 0x752f6a
and r15d, 0x4000
jne 0x753050
movdqu xmm0, xmmword [rbx]
mov edx, 0x48
movups xmmword [r12], xmm0
movdqu xmm1, xmmword [rbx + 0x10]
movups xmmword [r12 + 0x10], xmm1
movdqu xmm2, xmmword [rbx + 0x20]
movups xmmword [r12 + 0x20], xmm2
movdqu xmm3, xmmword [rbx + 0x30]
movups xmmword [r12 + 0x30], xmm3
mov rax, qword [rbx + 0x40]
mov qword [r12 + 0x40], rax
mov esi, dword [r12 + 4]
and esi, 0xf7fcbfff
or esi, r9d
or esi, r15d
mov dword [r12 + 4], esi
test r8d, r8d
jne 0x752ef0
mov eax, dword [rbx + 4]
mov edx, eax
or edx, esi
and edx, 0x810000
jne 0x752dcd
mov rdx, qword [rbx + 0x20]
mov r8d, r14d
mov rcx, r13
test ah, 0x10
jne 0x752f20
call fcn.00752780
mov esi, dword [r12 + 4]
mov qword [r12 + 0x20], rax
test esi, 0x1014000
je 0x752eb0
mov edx, r14d
mov rcx, rbx
call fcn.0074e250
cdqe
add qword [rsp + 0x38], rax
and esi, 0x810000
jne 0x752e3b
mov rdx, qword [rbx + 0x10]
test rdx, rdx
je 0x752e12
lea r9, [rsp + 0x38]
mov r8d, 1
mov rcx, r13
call fcn.00752c70
mov rdx, rax
mov qword [r12 + 0x10], rdx
mov rdx, qword [rbx + 0x18]
test rdx, rdx
je 0x752e36
lea r9, [rsp + 0x38]
mov r8d, 1
mov rcx, r13
call fcn.00752c70
mov rdx, rax
mov qword [r12 + 0x18], rdx
test byte [rbx + 7], 1
jne 0x753030
test rbp, rbp
je 0x752e53
mov rax, qword [rsp + 0x38]
mov qword [rbp], rax
mov rax, r12
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r8d, r8d
mov rax, qword [rbx]
lea rdi, [r12 + 8]
mov rsi, rbx
and rdi, 0xfffffffffffffff8
mov qword [r12], rax
mov eax, edx
mov rcx, qword [rbx + rax - 8]
mov qword [r12 + rax - 8], rcx
mov rcx, r12
sub rcx, rdi
sub rsi, rcx
add ecx, edx
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x752d7d
test dword [rbx + 4], 0x810000
jne 0x752e53
cmp byte [r12], 0xb2
mov rdx, qword [rbx + 0x10]
jne 0x753088
mov qword [r12 + 0x10], rdx
mov rdx, qword [rbx + 0x18]
xor r8d, r8d
mov rcx, r13
call fcn.007530a0
mov qword [r12 + 0x18], rax
jmp 0x752e53
movsxd rcx, edx
add rcx, qword [rsp + 0x38]
and r8d, 0x7fffffff
mov qword [r12 + 8], rcx
mov rdx, qword [rbx + 8]
call sub.msvcrt.dll_memcpy
mov esi, dword [r12 + 4]
jmp 0x752d9c
call fcn.00752a30
mov esi, dword [r12 + 4]
mov qword [r12 + 0x20], rax
jmp 0x752dcd
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x752d28
mov dword [rsp + 0x28], r9d
call sub.msvcrt.dll_strlen
mov r9d, dword [rsp + 0x28]
and eax, 0x3fffffff
lea r8d, [rax + 1]
test r15d, 0x10000
je 0x752d38
movdqu xmm4, xmmword [rbx]
mov eax, 0x38
mov ecx, 0x10
movups xmmword [r12], xmm4
add rcx, qword [rsp + 0x38]
xor r15d, r15d
mov edx, 0x48
lea rdi, [rcx + 8]
mov qword [rcx], 0
mov qword [rax + rcx - 8], 0
and rdi, 0xfffffffffffffff8
sub rcx, rdi
add ecx, eax
mov eax, ecx
shr eax, 3
mov ecx, eax
xor eax, eax
rep stosq qword [rdi], rax
jmp 0x752d7d
cmp qword [rbx + 0x10], 0
mov r15d, 0x4000
mov edx, 0x2c
jne 0x752cd7
cmp qword [rbx + 0x20], 1
sbb r15d, r15d
and r15d, 0xc000
add r15d, 0x4000
cmp qword [rbx + 0x20], 1
sbb edx, edx
and edx, 0xffffffe4
add edx, 0x2c
jmp 0x752cd7
mov edx, r8d
mov rcx, rbx
call fcn.0074e2c0
mov rcx, r13
movsxd rdx, eax
call fcn.00751520
xor r9d, r9d
mov qword [rsp + 0x38], rax
mov r12, rax
jmp 0x752ca3
mov r8, qword [rbx + 0x40]
mov rdx, r12
mov rcx, r13
call fcn.00753290
mov qword [r12 + 0x40], rax
jmp 0x752e45
movdqu xmm5, xmmword [rbx]
mov ecx, 0x2c
movups xmmword [r12], xmm5
movdqu xmm5, xmmword [rbx + 0x10]
movups xmmword [r12 + 0x10], xmm5
mov rax, qword [rbx + 0x20]
mov qword [r12 + 0x20], rax
mov eax, dword [rbx + 0x28]
mov dword [r12 + 0x28], eax
mov eax, 0x1c
jmp 0x752f7d
xor r8d, r8d
mov rcx, r13
call fcn.007530a0
mov qword [r12 + 0x10], rax
jmp 0x752ecd