Function at 0x1401b4590
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
push rbp
sub rsp, 0x610
lea rbp, [rsp + 0x80]
mov qword [rbp - 0x20], r8
mov qword [rbp - 0x28], rdx
mov qword [rbp - 0x38], rcx
mov qword [rbp - 0x30], rcx
lea rax, [0x14040d1c0]
mov qword [rbp - 0x18], rax
lea rcx, [0x14040d1c0]
call fcn.1401b5880
vmovdqa xmmword [rbp - 0x10], xmm0
vmovdqa xmmword [rbp], xmm0
lea rax, [0x14040d1d0]
mov qword [rbp + 0x18], rax
lea rcx, [0x14040d1d0]
call fcn.1401b5880
mov rdx, qword [rbp - 0x28]
vmovdqa xmmword [rbp + 0x20], xmm0
vmovdqa xmmword [rbp + 0x30], xmm0
mov rax, qword [rdx]
mov qword [rbp + 0x48], rax
mov rax, qword [rdx + 8]
mov qword [rbp + 0x50], rax
mov rax, qword [rdx + 0x10]
mov qword [rbp + 0x58], rax
mov rax, qword [rdx + 0x18]
mov qword [rbp + 0x60], rax
lea rcx, [rbp + 0x48]
mov qword [rbp + 0x68], rcx
call fcn.1401b5880
mov rdx, qword [rbp - 0x28]
vmovdqa xmmword [rbp + 0x70], xmm0
vmovdqa xmmword [rbp + 0x80], xmm0
mov rax, qword [rbp + 0x80]
mov qword [rbp + 0x90], rax
mov rax, qword [rbp + 0x88]
mov qword [rbp + 0x98], rax
mov rax, qword [rdx]
mov qword [rbp + 0xa8], rax
mov rax, qword [rdx + 8]
mov qword [rbp + 0xb0], rax
mov rax, qword [rdx + 0x10]
mov qword [rbp + 0xb8], rax
mov rax, qword [rdx + 0x18]
mov qword [rbp + 0xc0], rax
lea rcx, [rbp + 0xa8]
add rcx, 0x10
mov qword [rbp + 0xc8], rcx
call fcn.1401b5880
mov r8, qword [rbp - 0x20]
vmovdqa xmmword [rbp + 0xd0], xmm0
vmovdqa xmmword [rbp + 0xe0], xmm0
mov rax, qword [rbp + 0xe0]
mov qword [rbp + 0xf0], rax
mov rax, qword [rbp + 0xe8]
mov qword [rbp + 0xf8], rax
mov rax, qword [r8]
mov qword [rbp + 0x108], rax
mov rax, qword [r8 + 8]
mov qword [rbp + 0x110], rax
mov rax, qword [r8 + 0x10]
mov qword [rbp + 0x118], rax
mov rax, qword [r8 + 0x18]
mov qword [rbp + 0x120], rax
lea rcx, [rbp + 0x108]
mov qword [rbp + 0x128], rcx
call fcn.1401b5880
mov r8, qword [rbp - 0x20]
vmovdqa xmmword [rbp + 0x130], xmm0
vmovdqa xmmword [rbp + 0x140], xmm0
mov rax, qword [r8]
mov qword [rbp + 0x158], rax
mov rax, qword [r8 + 8]
mov qword [rbp + 0x160], rax
mov rax, qword [r8 + 0x10]
mov qword [rbp + 0x168], rax
mov rax, qword [r8 + 0x18]
mov qword [rbp + 0x170], rax
lea rcx, [rbp + 0x158]
add rcx, 0x10
mov qword [rbp + 0x178], rcx
call fcn.1401b5880
vmovdqa xmmword [rbp + 0x180], xmm0
vmovdqa xmmword [rbp + 0x190], xmm0
vmovdqa xmm0, xmmword [rbp + 0x90]
vpxor xmm0, xmm0, xmmword [rbp + 0x140]
vmovdqa xmmword [rbp + 0x1a0], xmm0
vmovdqa xmm0, xmmword [rbp + 0xf0]
vpxor xmm0, xmm0, xmmword [rbp + 0x190]
vmovdqa xmmword [rbp + 0x1b0], xmm0
vmovdqa xmm0, xmmword [rbp + 0x90]
vpxor xmm0, xmm0, xmmword [rbp + 0x30]
vmovdqa xmmword [rbp + 0x1c0], xmm0
vmovdqa xmm0, xmmword [rbp + 0xf0]
vpxor xmm0, xmm0, xmmword [rbp]
vmovdqa xmmword [rbp + 0x1d0], xmm0
mov rax, qword [rbp + 0x1a0]
mov qword [rbp + 0x1e0], rax
mov rax, qword [rbp + 0x1a8]
mov qword [rbp + 0x1e8], rax
mov rax, qword [rbp + 0x1b0]
mov qword [rbp + 0x1f0], rax
mov rax, qword [rbp + 0x1b8]
mov qword [rbp + 0x1f8], rax
mov rax, qword [rbp]
mov qword [rbp + 0x200], rax
mov rax, qword [rbp + 8]
mov qword [rbp + 0x208], rax
mov rax, qword [rbp + 0x30]
mov qword [rbp + 0x210], rax
mov rax, qword [rbp + 0x38]
mov qword [rbp + 0x218], rax
mov rax, qword [rbp + 0x1c0]
mov qword [rbp + 0x220], rax
mov rax, qword [rbp + 0x1c8]
mov qword [rbp + 0x228], rax
mov rax, qword [rbp + 0x1d0]
mov qword [rbp + 0x230], rax
mov rax, qword [rbp + 0x1d8]
mov qword [rbp + 0x238], rax
lea rcx, [rbp + 0x2a0]
lea rdx, [rbp + 0x1e0]
mov r8d, 0x60
call fcn.1403750f0
lea rcx, [rbp + 0x240]
lea rdx, [rbp + 0x2a0]
mov r8d, 0x60
call fcn.1403750f0
mov qword [rbp + 0x308], 0
jmp 0x1401b48bd
mov rcx, qword [rbp - 0x38]
lea rdx, [rbp + 0x240]
mov r8d, 0x60
call fcn.1403750f0
mov rax, qword [rbp - 0x30]
add rsp, 0x610
pop rbp
ret
cmp qword [rbp + 0x308], 4
jb 0x1401b48ce
jmp 0x1401b511c
jmp 0x1401b48bd
lea rax, [rbp + 0x240]
mov qword [rbp + 0x310], rax
lea rax, [rbp + 0x240]
mov qword [rbp + 0x318], rax
mov rcx, qword [rbp + 0x318]
mov qword [rbp - 0x60], rcx
mov qword [rbp + 0x320], rcx
mov qword [rbp + 0x328], rcx
mov rax, qword [rbp + 0x320]
mov rdx, rax
add rdx, 0x50
vmovdqa xmm0, xmmword [rax + 0x50]
vmovdqa xmm1, xmmword [rcx]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x330], xmm0
mov rax, qword [rbp + 0x330]
mov qword [rbp + 0x340], rax
mov rax, qword [rbp + 0x338]
mov qword [rbp + 0x348], rax
mov rax, qword [rbp + 0x320]
mov rdx, qword [rbp + 0x320]
mov r8, rdx
add r8, 0x40
mov r8, rcx
add r8, 0x50
vmovdqa xmm0, xmmword [rdx + 0x40]
vmovdqa xmm1, xmmword [rcx + 0x50]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x350], xmm0
mov rdx, qword [rbp + 0x350]
mov qword [rax + 0x50], rdx
mov rdx, qword [rbp + 0x358]
mov qword [rax + 0x58], rdx
mov rax, qword [rbp + 0x320]
mov rdx, qword [rbp + 0x320]
mov r8, rdx
add r8, 0x30
mov r8, rcx
add r8, 0x40
vmovdqa xmm0, xmmword [rdx + 0x30]
vmovdqa xmm1, xmmword [rcx + 0x40]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x360], xmm0
mov rdx, qword [rbp + 0x360]
mov qword [rax + 0x40], rdx
mov rdx, qword [rbp + 0x368]
mov qword [rax + 0x48], rdx
mov rax, qword [rbp + 0x320]
mov rdx, qword [rbp + 0x320]
mov r8, rdx
add r8, 0x20
mov r8, rcx
add r8, 0x30
vmovdqa xmm0, xmmword [rdx + 0x20]
vmovdqa xmm1, xmmword [rcx + 0x30]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x370], xmm0
mov rdx, qword [rbp + 0x370]
mov qword [rax + 0x30], rdx
mov rdx, qword [rbp + 0x378]
mov qword [rax + 0x38], rdx
mov rax, qword [rbp + 0x320]
mov rdx, qword [rbp + 0x320]
mov r8, rdx
add r8, 0x10
mov r8, rcx
add r8, 0x20
vmovdqa xmm0, xmmword [rdx + 0x10]
vmovdqa xmm1, xmmword [rcx + 0x20]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x380], xmm0
mov rdx, qword [rbp + 0x380]
mov qword [rax + 0x20], rdx
mov rdx, qword [rbp + 0x388]
mov qword [rax + 0x28], rdx
mov rax, qword [rbp + 0x320]
mov rdx, qword [rbp + 0x320]
mov r8, rcx
add r8, 0x10
vmovdqa xmm0, xmmword [rdx]
vmovdqa xmm1, xmmword [rcx + 0x10]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x390], xmm0
mov rcx, qword [rbp + 0x390]
mov qword [rax + 0x10], rcx
mov rcx, qword [rbp + 0x398]
mov qword [rax + 0x18], rcx
mov rax, qword [rbp + 0x320]
vmovdqa xmm0, xmmword [rbp + 0x340]
vpxor xmm0, xmm0, xmmword [rbp + 0x80]
vmovdqa xmmword [rbp + 0x3a0], xmm0
mov rcx, qword [rbp + 0x3a0]
mov qword [rax], rcx
mov rcx, qword [rbp + 0x3a8]
mov qword [rax + 8], rcx
lea rax, [rbp + 0x240]
mov qword [rbp + 0x3b0], rax
lea rax, [rbp + 0x240]
mov qword [rbp + 0x3b8], rax
mov rcx, qword [rbp + 0x3b8]
mov qword [rbp - 0x58], rcx
mov qword [rbp + 0x3c0], rcx
mov qword [rbp + 0x3c8], rcx
mov rax, qword [rbp + 0x3c0]
mov rdx, rax
add rdx, 0x50
vmovdqa xmm0, xmmword [rax + 0x50]
vmovdqa xmm1, xmmword [rcx]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x3d0], xmm0
mov rax, qword [rbp + 0x3d0]
mov qword [rbp + 0x3e0], rax
mov rax, qword [rbp + 0x3d8]
mov qword [rbp + 0x3e8], rax
mov rax, qword [rbp + 0x3c0]
mov rdx, qword [rbp + 0x3c0]
mov r8, rdx
add r8, 0x40
mov r8, rcx
add r8, 0x50
vmovdqa xmm0, xmmword [rdx + 0x40]
vmovdqa xmm1, xmmword [rcx + 0x50]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x3f0], xmm0
mov rdx, qword [rbp + 0x3f0]
mov qword [rax + 0x50], rdx
mov rdx, qword [rbp + 0x3f8]
mov qword [rax + 0x58], rdx
mov rax, qword [rbp + 0x3c0]
mov rdx, qword [rbp + 0x3c0]
mov r8, rdx
add r8, 0x30
mov r8, rcx
add r8, 0x40
vmovdqa xmm0, xmmword [rdx + 0x30]
vmovdqa xmm1, xmmword [rcx + 0x40]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x400], xmm0
mov rdx, qword [rbp + 0x400]
mov qword [rax + 0x40], rdx
mov rdx, qword [rbp + 0x408]
mov qword [rax + 0x48], rdx
mov rax, qword [rbp + 0x3c0]
mov rdx, qword [rbp + 0x3c0]
mov r8, rdx
add r8, 0x20
mov r8, rcx
add r8, 0x30
vmovdqa xmm0, xmmword [rdx + 0x20]
vmovdqa xmm1, xmmword [rcx + 0x30]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x410], xmm0
mov rdx, qword [rbp + 0x410]
mov qword [rax + 0x30], rdx
mov rdx, qword [rbp + 0x418]
mov qword [rax + 0x38], rdx
mov rax, qword [rbp + 0x3c0]
mov rdx, qword [rbp + 0x3c0]
mov r8, rdx
add r8, 0x10
mov r8, rcx
add r8, 0x20
vmovdqa xmm0, xmmword [rdx + 0x10]
vmovdqa xmm1, xmmword [rcx + 0x20]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x420], xmm0
mov rdx, qword [rbp + 0x420]
mov qword [rax + 0x20], rdx
mov rdx, qword [rbp + 0x428]
mov qword [rax + 0x28], rdx
mov rax, qword [rbp + 0x3c0]
mov rdx, qword [rbp + 0x3c0]
mov r8, rcx
add r8, 0x10
vmovdqa xmm0, xmmword [rdx]
vmovdqa xmm1, xmmword [rcx + 0x10]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x430], xmm0
mov rcx, qword [rbp + 0x430]
mov qword [rax + 0x10], rcx
mov rcx, qword [rbp + 0x438]
mov qword [rax + 0x18], rcx
mov rax, qword [rbp + 0x3c0]
vmovdqa xmm0, xmmword [rbp + 0x3e0]
vpxor xmm0, xmm0, xmmword [rbp + 0xe0]
vmovdqa xmmword [rbp + 0x440], xmm0
mov rcx, qword [rbp + 0x440]
mov qword [rax], rcx
mov rcx, qword [rbp + 0x448]
mov qword [rax + 8], rcx
lea rax, [rbp + 0x240]
mov qword [rbp + 0x450], rax
lea rax, [rbp + 0x240]
mov qword [rbp + 0x458], rax
mov rcx, qword [rbp + 0x458]
mov qword [rbp - 0x50], rcx
mov qword [rbp + 0x460], rcx
mov qword [rbp + 0x468], rcx
mov rax, qword [rbp + 0x460]
mov rdx, rax
add rdx, 0x50
vmovdqa xmm0, xmmword [rax + 0x50]
vmovdqa xmm1, xmmword [rcx]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x470], xmm0
mov rax, qword [rbp + 0x470]
mov qword [rbp + 0x480], rax
mov rax, qword [rbp + 0x478]
mov qword [rbp + 0x488], rax
mov rax, qword [rbp + 0x460]
mov rdx, qword [rbp + 0x460]
mov r8, rdx
add r8, 0x40
mov r8, rcx
add r8, 0x50
vmovdqa xmm0, xmmword [rdx + 0x40]
vmovdqa xmm1, xmmword [rcx + 0x50]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x490], xmm0
mov rdx, qword [rbp + 0x490]
mov qword [rax + 0x50], rdx
mov rdx, qword [rbp + 0x498]
mov qword [rax + 0x58], rdx
mov rax, qword [rbp + 0x460]
mov rdx, qword [rbp + 0x460]
mov r8, rdx
add r8, 0x30
mov r8, rcx
add r8, 0x40
vmovdqa xmm0, xmmword [rdx + 0x30]
vmovdqa xmm1, xmmword [rcx + 0x40]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x4a0], xmm0
mov rdx, qword [rbp + 0x4a0]
mov qword [rax + 0x40], rdx
mov rdx, qword [rbp + 0x4a8]
mov qword [rax + 0x48], rdx
mov rax, qword [rbp + 0x460]
mov rdx, qword [rbp + 0x460]
mov r8, rdx
add r8, 0x20
mov r8, rcx
add r8, 0x30
vmovdqa xmm0, xmmword [rdx + 0x20]
vmovdqa xmm1, xmmword [rcx + 0x30]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x4b0], xmm0
mov rdx, qword [rbp + 0x4b0]
mov qword [rax + 0x30], rdx
mov rdx, qword [rbp + 0x4b8]
mov qword [rax + 0x38], rdx
mov rax, qword [rbp + 0x460]
mov rdx, qword [rbp + 0x460]
mov r8, rdx
add r8, 0x10
mov r8, rcx
add r8, 0x20
vmovdqa xmm0, xmmword [rdx + 0x10]
vmovdqa xmm1, xmmword [rcx + 0x20]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x4c0], xmm0
mov rdx, qword [rbp + 0x4c0]
mov qword [rax + 0x20], rdx
mov rdx, qword [rbp + 0x4c8]
mov qword [rax + 0x28], rdx
mov rax, qword [rbp + 0x460]
mov rdx, qword [rbp + 0x460]
mov r8, rcx
add r8, 0x10
vmovdqa xmm0, xmmword [rdx]
vmovdqa xmm1, xmmword [rcx + 0x10]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x4d0], xmm0
mov rcx, qword [rbp + 0x4d0]
mov qword [rax + 0x10], rcx
mov rcx, qword [rbp + 0x4d8]
mov qword [rax + 0x18], rcx
mov rax, qword [rbp + 0x460]
vmovdqa xmm0, xmmword [rbp + 0x480]
vpxor xmm0, xmm0, xmmword [rbp + 0x1a0]
vmovdqa xmmword [rbp + 0x4e0], xmm0
mov rcx, qword [rbp + 0x4e0]
mov qword [rax], rcx
mov rcx, qword [rbp + 0x4e8]
mov qword [rax + 8], rcx
lea rax, [rbp + 0x240]
mov qword [rbp + 0x4f0], rax
lea rax, [rbp + 0x240]
mov qword [rbp + 0x4f8], rax
mov rcx, qword [rbp + 0x4f8]
mov qword [rbp - 0x48], rcx
mov qword [rbp + 0x500], rcx
mov qword [rbp + 0x508], rcx
mov rax, qword [rbp + 0x500]
mov rdx, rax
add rdx, 0x50
vmovdqa xmm0, xmmword [rax + 0x50]
vmovdqa xmm1, xmmword [rcx]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x510], xmm0
mov rax, qword [rbp + 0x510]
mov qword [rbp + 0x520], rax
mov rax, qword [rbp + 0x518]
mov qword [rbp + 0x528], rax
mov rax, qword [rbp + 0x500]
mov rdx, qword [rbp + 0x500]
mov r8, rdx
add r8, 0x40
mov r8, rcx
add r8, 0x50
vmovdqa xmm0, xmmword [rdx + 0x40]
vmovdqa xmm1, xmmword [rcx + 0x50]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x530], xmm0
mov rdx, qword [rbp + 0x530]
mov qword [rax + 0x50], rdx
mov rdx, qword [rbp + 0x538]
mov qword [rax + 0x58], rdx
mov rax, qword [rbp + 0x500]
mov rdx, qword [rbp + 0x500]
mov r8, rdx
add r8, 0x30
mov r8, rcx
add r8, 0x40
vmovdqa xmm0, xmmword [rdx + 0x30]
vmovdqa xmm1, xmmword [rcx + 0x40]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x540], xmm0
mov rdx, qword [rbp + 0x540]
mov qword [rax + 0x40], rdx
mov rdx, qword [rbp + 0x548]
mov qword [rax + 0x48], rdx
mov rax, qword [rbp + 0x500]
mov rdx, qword [rbp + 0x500]
mov r8, rdx
add r8, 0x20
mov r8, rcx
add r8, 0x30
vmovdqa xmm0, xmmword [rdx + 0x20]
vmovdqa xmm1, xmmword [rcx + 0x30]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x550], xmm0
mov rdx, qword [rbp + 0x550]
mov qword [rax + 0x30], rdx
mov rdx, qword [rbp + 0x558]
mov qword [rax + 0x38], rdx
mov rax, qword [rbp + 0x500]
mov rdx, qword [rbp + 0x500]
mov r8, rdx
add r8, 0x10
mov r8, rcx
add r8, 0x20
vmovdqa xmm0, xmmword [rdx + 0x10]
vmovdqa xmm1, xmmword [rcx + 0x20]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x560], xmm0
mov rdx, qword [rbp + 0x560]
mov qword [rax + 0x20], rdx
mov rdx, qword [rbp + 0x568]
mov qword [rax + 0x28], rdx
mov rax, qword [rbp + 0x500]
mov rdx, qword [rbp + 0x500]
mov r8, rcx
add r8, 0x10
vmovdqa xmm0, xmmword [rdx]
vmovdqa xmm1, xmmword [rcx + 0x10]
vaesenc xmm0, xmm0, xmm1
vmovdqa xmmword [rbp + 0x570], xmm0
mov rcx, qword [rbp + 0x570]
mov qword [rax + 0x10], rcx
mov rcx, qword [rbp + 0x578]
mov qword [rax + 0x18], rcx
mov rax, qword [rbp + 0x500]
vmovdqa xmm0, xmmword [rbp + 0x520]
vpxor xmm0, xmm0, xmmword [rbp + 0x1b0]
vmovdqa xmmword [rbp + 0x580], xmm0
mov rcx, qword [rbp + 0x580]
mov qword [rax], rcx
mov rcx, qword [rbp + 0x588]
mov qword [rax + 8], rcx
mov rax, qword [rbp + 0x308]
add rax, 1
mov qword [rbp - 0x40], rax
setb al
jb 0x1401b5121
jmp 0x1401b513e
jmp 0x1401b489a
lea rcx, str.integer_overflow
mov edx, 0x10
xor eax, eax
mov r8d, eax
lea r9, [0x14037c688]
call fcn.140001170
mov rax, qword [rbp - 0x40]
mov qword [rbp + 0x308], rax
jmp 0x1401b48cc