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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x2a0
movaps xmm3, xmmword [ecx + 0x40]
movaps xmm4, xmmword [ecx + 0x50]
mov eax, dword [edx]
movaps xmm0, xmmword [ecx]
movdqa xmm1, xmmword [ecx + 0x20]
movaps xmm2, xmmword [ecx + 0x30]
xor esi, esi
mov dword [esp + 0x1c], ecx
movaps xmmword [esp + 0x1c0], xmm3
movaps xmm3, xmmword [ecx + 0x60]
movaps xmmword [esp + 0x1b0], xmm4
movaps xmm4, xmmword [ecx + 0x70]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 4]
movaps xmmword [esp + 0x200], xmm0
movdqa xmm0, xmmword [ecx + 0x10]
movaps xmmword [esp + 0x1d0], xmm2
movdqa xmmword [esp + 0x1e0], xmm1
movaps xmmword [esp + 0x1a0], xmm3
movaps xmm3, xmmword [ecx + 0x80]
movaps xmmword [esp + 0x190], xmm4
movaps xmm4, xmmword [ecx + 0x90]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 8]
movdqa xmmword [esp + 0x1f0], xmm0
movaps xmmword [esp + 0x180], xmm3
movaps xmm3, xmmword [ecx + 0xa0]
movaps xmmword [esp + 0x170], xmm4
movaps xmm4, xmmword [ecx + 0xb0]
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0xc]
movaps xmmword [esp + 0x160], xmm3
movaps xmm3, xmmword [ecx + 0xc0]
movaps xmmword [esp + 0x150], xmm4
movaps xmm4, xmmword [ecx + 0xd0]
mov dword [esp + 0xc], eax
shr eax, 3
mov dword [esp + 8], eax
movaps xmmword [esp + 0x140], xmm3
movaps xmm3, xmmword [ecx + 0xe0]
movaps xmmword [esp + 0x130], xmm4
movaps xmmword [esp + 0x120], xmm3
cmp dword [esp + 8], esi
je 0x10012c2d
lea ecx, [esp + 0x218]
mov dword [esp + 4], esi
call sym.__ZN110__LT_generic_array..GenericArray_LT_T_C_N_GT__u20_as_u20_generic_array..sequence..GenericSequence_LT_T_GT__GT_8generate
lea ecx, [esp + 0xa0]
call sym.__ZN110__LT_generic_array..GenericArray_LT_T_C_N_GT__u20_as_u20_generic_array..sequence..GenericSequence_LT_T_GT__GT_8generate
push 0xffffffffffffff80
pop esi
test esi, esi
je 0x10012849
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x20]
call sym.__LT_ctr..flavors..ctr32..Ctr32BE_u20_as_u20_ctr..flavors..CtrFlavor_LT_B_GT__GT_::next_block::h21c12ba499b1ba97
movq xmm0, qword [esp + 0x20]
movq xmm1, qword [esp + 0x28]
movq qword [esp + esi + 0x128], xmm1
movq qword [esp + esi + 0x120], xmm0
add esi, 0x10
jmp 0x10012815
movaps xmm1, xmmword [esp + 0x200]
movups xmm0, xmmword [esp + 0xa0]
movups xmm2, xmmword [esp + 0xb0]
movups xmm3, xmmword [esp + 0xc0]
xorps xmm0, xmm1
xorps xmm2, xmm1
xorps xmm3, xmm1
movaps xmmword [esp + 0x20], xmm0
movaps xmmword [esp + 0x30], xmm2
movups xmm2, xmmword [esp + 0xd0]
movaps xmmword [esp + 0x40], xmm3
movups xmm3, xmmword [esp + 0xe0]
xorps xmm2, xmm1
xorps xmm3, xmm1
movaps xmmword [esp + 0x50], xmm2
movups xmm2, xmmword [esp + 0xf0]
movaps xmmword [esp + 0x60], xmm3
movups xmm3, xmmword [esp + 0x100]
xorps xmm2, xmm1
xorps xmm3, xmm1
movaps xmmword [esp + 0x70], xmm2
movups xmm2, xmmword [esp + 0x110]
movaps xmmword [esp + 0x80], xmm3
xorps xmm2, xmm1
movaps xmmword [esp + 0x90], xmm2
push 0xffffffffffffff80
pop edx
movdqa xmm1, xmmword [esp + 0x1f0]
mov ecx, dword [esp + 4]
mov eax, edx
test eax, eax
je 0x10012909
movdqa xmm0, xmmword [esp + eax + 0xa0]
aesenc xmm0, xmm1
movdqa xmmword [esp + eax + 0xa0], xmm0
add eax, 0x10
jmp 0x100128e9
movdqa xmm1, xmmword [esp + 0x1e0]
mov eax, edx
test eax, eax
je 0x10012934
movdqa xmm0, xmmword [esp + eax + 0xa0]
aesenc xmm0, xmm1
movdqa xmmword [esp + eax + 0xa0], xmm0
add eax, 0x10
jmp 0x10012914
movdqa xmm1, xmmword [esp + 0x1d0]
mov eax, edx
test eax, eax
je 0x1001295f
movdqa xmm0, xmmword [esp + eax + 0xa0]
aesenc xmm0, xmm1
movdqa xmmword [esp + eax + 0xa0], xmm0
add eax, 0x10
jmp 0x1001293f
movdqa xmm1, xmmword [esp + 0x1c0]
mov eax, edx
test eax, eax
je 0x1001298a
movdqa xmm0, xmmword [esp + eax + 0xa0]
aesenc xmm0, xmm1
movdqa xmmword [esp + eax + 0xa0], xmm0
add eax, 0x10
jmp 0x1001296a
movdqa xmm1, xmmword [esp + 0x1b0]
mov eax, edx
test eax, eax
je 0x100129b5
movdqa xmm0, xmmword [esp + eax + 0xa0]
aesenc xmm0, xmm1
movdqa xmmword [esp + eax + 0xa0], xmm0
add eax, 0x10
jmp 0x10012995
movdqa xmm1, xmmword [esp + 0x1a0]
mov eax, edx
test eax, eax
je 0x100129e0
movdqa xmm0, xmmword [esp + eax + 0xa0]
aesenc xmm0, xmm1
movdqa xmmword [esp + eax + 0xa0], xmm0
add eax, 0x10
jmp 0x100129c0
movdqa xmm1, xmmword [esp + 0x190]
mov eax, edx
test eax, eax
je 0x10012a0b
movdqa xmm0, xmmword [esp + eax + 0xa0]
aesenc xmm0, xmm1
movdqa xmmword [esp + eax + 0xa0], xmm0
add eax, 0x10
jmp 0x100129eb
movdqa xmm1, xmmword [esp + 0x180]
mov eax, edx
test eax, eax
je 0x10012a36
movdqa xmm0, xmmword [esp + eax + 0xa0]
aesenc xmm0, xmm1
movdqa xmmword [esp + eax + 0xa0], xmm0
add eax, 0x10
jmp 0x10012a16
movdqa xmm1, xmmword [esp + 0x170]
mov eax, edx
test eax, eax
je 0x10012a61
movdqa xmm0, xmmword [esp + eax + 0xa0]
aesenc xmm0, xmm1
movdqa xmmword [esp + eax + 0xa0], xmm0
add eax, 0x10
jmp 0x10012a41
movdqa xmm1, xmmword [esp + 0x160]
mov eax, edx
test eax, eax
je 0x10012a8c
movdqa xmm0, xmmword [esp + eax + 0xa0]
aesenc xmm0, xmm1
movdqa xmmword [esp + eax + 0xa0], xmm0
add eax, 0x10
jmp 0x10012a6c
movdqa xmm1, xmmword [esp + 0x150]
mov eax, edx
test eax, eax
je 0x10012ab7
movdqa xmm0, xmmword [esp + eax + 0xa0]
aesenc xmm0, xmm1
movdqa xmmword [esp + eax + 0xa0], xmm0
add eax, 0x10
jmp 0x10012a97
movdqa xmm1, xmmword [esp + 0x140]
mov eax, edx
test eax, eax
je 0x10012ae2
movdqa xmm0, xmmword [esp + eax + 0xa0]
aesenc xmm0, xmm1
movdqa xmmword [esp + eax + 0xa0], xmm0
add eax, 0x10
jmp 0x10012ac2
movdqa xmm1, xmmword [esp + 0x130]
mov eax, edx
test eax, eax
je 0x10012b0d
movdqa xmm0, xmmword [esp + eax + 0xa0]
aesenc xmm0, xmm1
movdqa xmmword [esp + eax + 0xa0], xmm0
add eax, 0x10
jmp 0x10012aed
movdqa xmm1, xmmword [esp + 0x120]
mov eax, edx
test eax, eax
je 0x10012b38
movdqa xmm0, xmmword [esp + eax + 0xa0]
aesenclast xmm0, xmm1
movdqa xmmword [esp + eax + 0xa0], xmm0
add eax, 0x10
jmp 0x10012b18
mov eax, dword [esp + 0x14]
movdqa xmm0, xmmword [esp + 0x20]
movdqa xmm1, xmmword [esp + 0x30]
movaps xmm2, xmmword [esp + 0x40]
movaps xmm3, xmmword [esp + 0x50]
movaps xmm4, xmmword [esp + 0x60]
movaps xmm5, xmmword [esp + 0x70]
movaps xmm6, xmmword [esp + 0x80]
movaps xmm7, xmmword [esp + 0x90]
shl ecx, 7
mov dword [esp], ecx
add eax, ecx
movdqu xmmword [esp + 0x218], xmm0
movdqu xmmword [esp + 0x228], xmm1
movups xmmword [esp + 0x238], xmm2
movups xmmword [esp + 0x248], xmm3
movups xmmword [esp + 0x258], xmm4
movups xmmword [esp + 0x268], xmm5
movups xmmword [esp + 0x278], xmm6
movups xmmword [esp + 0x288], xmm7
push pe_nt_image_headers32
push eax
lea esi, [esp + 0xa8]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea edi, [esp + 0x20]
mov ecx, edi
call sym.__ZN110__LT_generic_array..GenericArray_LT_T_C_N_GT__u20_as_u20_generic_array..sequence..GenericSequence_LT_T_GT__GT_8generate
xor eax, eax
mov ecx, edi
lea edx, [esp + 0x218]
cmp eax, 8
je 0x10012c09
push 0xfffffffffffffff0
pop edi
test edi, edi
je 0x10012bfd
mov bl, byte [edx + edi + 0x10]
xor bl, byte [esi + edi + 0x10]
mov byte [ecx + edi + 0x10], bl
inc edi
jmp 0x10012bea
inc eax
add esi, 0x10
add edx, 0x10
add ecx, 0x10
jmp 0x10012be2
mov ecx, dword [esp]
mov esi, dword [esp + 4]
add ecx, dword [esp + 0x10]
inc esi
push pe_nt_image_headers32
lea eax, [esp + 0x24]
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x100127ec
mov edi, dword [esp + 0xc]
lea esi, [esp + 0x20]
mov ecx, esi
mov eax, edi
and edi, 7
and eax, 0xfffffff8
mov dword [esp + 8], eax
call sym.__ZN110__LT_generic_array..GenericArray_LT_T_C_N_GT__u20_as_u20_generic_array..sequence..GenericSequence_LT_T_GT__GT_8generate
push 8
pop edx
mov ecx, esi
mov dword [esp + 0xc], edi
push edi
call sym.__ZN4core5slice5index77__LT_impl_u20_core..ops..index..IndexMut_LT_I_GT__u20_for_u20__u5b_T_u5d__GT_9index_mut17h3c5eb9ac129ab
pop ecx
mov edi, edx
mov ebx, eax
mov esi, eax
mov dword [esp], edx
shl edi, 4
test edi, edi
je 0x10012c9c
mov edx, dword [esp + 0x18]
lea eax, [esi + 0x10]
lea ecx, [esp + 0xa0]
mov dword [esp + 4], eax
call sym.__LT_ctr..flavors..ctr32..Ctr32BE_u20_as_u20_ctr..flavors..CtrFlavor_LT_B_GT__GT_::next_block::h21c12ba499b1ba97
movdqu xmm0, xmmword [esp + 0xa0]
mov ecx, dword [esp + 0x1c]
mov edx, esi
call sym.aes::ni::aes256::encrypt1::had9c7d435f90d42c
mov esi, dword [esp + 4]
add edi, 0xfffffff0
jmp 0x10012c64
mov eax, dword [esp + 8]
shl eax, 4
add dword [esp + 0x14], eax
add dword [esp + 0x10], eax
xor eax, eax
cmp eax, dword [esp + 0xc]
je 0x10012d3b
cmp eax, dword [esp]
je 0x10012d43
mov ecx, dword [esp + 0x10]
lea edi, [eax + 1]
shl eax, 4
lea esi, [ecx + eax]
mov ecx, dword [esp + 0x14]
movq xmm0, qword [ecx + eax]
movq xmm1, qword [ecx + eax + 8]
lea ecx, [esp + 0xa0]
movq qword [esp + 0x220], xmm1
movq qword [esp + 0x218], xmm0
call fcn.1000d87a
push 0xfffffffffffffff0
pop eax
test eax, eax
je 0x10012d16
mov cl, byte [ebx + eax + 0x10]
xor cl, byte [esp + eax + 0x228]
mov byte [esp + eax + 0xb0], cl
inc eax
jmp 0x10012cfd
movq xmm0, qword [esp + 0xa0]
movq xmm1, qword [esp + 0xa8]
add ebx, 0x10
mov eax, edi
movq qword [esi + 8], xmm1
movq qword [esi], xmm0
jmp 0x10012cad
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp]
mov edx, ecx
push 0x101682bc
call dbg.panic_bounds_check