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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x478
vmovups xmmword [rsp + 0x3d0], xmm6
vmovups xmmword [rsp + 0x3e0], xmm7
vmovups xmmword [rsp + 0x3f0], xmm8
vmovups xmmword [rsp + 0x400], xmm9
vmovups xmmword [rsp + 0x410], xmm10
vmovups xmmword [rsp + 0x420], xmm11
vmovups xmmword [rsp + 0x430], xmm12
vmovups xmmword [rsp + 0x440], xmm13
vmovups xmmword [rsp + 0x450], xmm14
vmovups xmmword [rsp + 0x460], xmm15
mov r12d, dword [rcx + 0x1f4]
mov edi, r12d
shr edi, 8
mov rsi, rcx
mov rbx, rdx
mov ebp, r8d
je 0x477e7e
lea r13d, [rdi - 1]
lea rcx, [rsp + 0x2d0]
mov r15, rsi
inc r13
lea r14, [rsp + 0x3d0]
shl r13, 4
mov rdx, r15
mov r8, r13
add r15, 0x40
call sub.msvcrt.dll_memcpy
mov rcx, rax
add rcx, 0x40
cmp rcx, r14
jne 0x477e63
test ebp, ebp
je 0x479090
mov r10d, edi
lea r8, [rsp + 0x3d0]
lea edx, [rdi + 1]
xor ecx, ecx
mov r13, r10
lea r9, [rsp + 0x3d0]
mov dword [rsp + 0x2c4], edx
vmovdqu xmm5, xmmword [rsi + 0x1e0]
shl r13, 4
lea r15, [rsp + 0x3d0]
vmovdqu xmm8, xmmword [0x00687f80]
vmovdqu xmm11, xmmword [0x00687f50]
add r13, r8
lea r8, [r10 + 4]
lea r11d, [rdi + 2]
vmovups xmmword [rsp + 0x2b0], xmm5
shl r8, 4
vmovdqu xmm5, xmmword [rsi + 0x1c0]
vmovdqu xmm9, xmmword [0x00687f60]
mov eax, 1
add r8, r9
mov r9d, edx
mov r14d, dword [rsi + 0x1f8]
shrx eax, dword [rsi + 0x1f0], eax
vmovups xmmword [rsp + 0x1e0], xmm5
lea rdx, [r9 + 4]
shl rdx, 4
add rdx, r15
mov qword [rsp + 0x2c8], rdx
nop dword [rax + rax]
vmovdqu xmm5, xmmword [rsp + 0x1e0]
vpaddq xmm5, xmm5, xmmword [rsp + 0x2b0]
vmovups xmmword [rsp + 0x1e0], xmm5
vmovups xmmword [rsi + 0x1c0], xmm5
cmp edi, 3
ja 0x4780b5
vmovdqu xmm5, xmmword [rbx]
mov rdx, r10
shl rdx, 4
vmovups xmmword [r13 - 0x100], xmm5
vmovdqu xmm5, xmmword [rbx + 0x10]
vmovups xmmword [r8 - 0x100], xmm5
vmovdqu xmm5, xmmword [rbx + 0x20]
vmovups xmmword [rsp + rdx + 0x350], xmm5
vmovdqu xmm5, xmmword [rbx + 0x30]
mov rdx, r10
shl rdx, 4
cmp dword [rsp + 0x2c4], 3
vmovups xmmword [rsp + rdx + 0x390], xmm5
ja 0x4780b5
vmovdqu xmm5, xmmword [rbx + 0x40]
mov rdx, r9
shl rdx, 4
vmovups xmmword [rsp + rdx + 0x2d0], xmm5
vmovdqu xmm5, xmmword [rbx + 0x50]
mov rdx, qword [rsp + 0x2c8]
vmovups xmmword [rdx - 0x100], xmm5
vmovdqu xmm5, xmmword [rbx + 0x60]
mov rdx, r9
shl rdx, 4
vmovups xmmword [rsp + rdx + 0x350], xmm5
vmovdqu xmm5, xmmword [rbx + 0x70]
mov rdx, r9
shl rdx, 4
vmovups xmmword [rsp + rdx + 0x390], xmm5
cmp r11d, 3
ja 0x4780b5
mov edx, r11d
vmovdqu xmm5, xmmword [rbx + 0x80]
mov r15, rdx
shl r15, 4
vmovups xmmword [rsp + r15 + 0x2d0], xmm5
mov r15, rdx
vmovdqu xmm5, xmmword [rbx + 0x90]
shl r15, 4
vmovups xmmword [rsp + r15 + 0x310], xmm5
mov r15, rdx
vmovdqu xmm5, xmmword [rbx + 0xa0]
shl r15, 4
vmovups xmmword [rsp + r15 + 0x350], xmm5
vmovdqu xmm5, xmmword [rbx + 0xb0]
vmovups xmmword [rsp + r15 + 0x390], xmm5
test edi, edi
jne 0x4780b5
vmovdqu xmm5, xmmword [rbx + 0xc0]
vmovups xmmword [rsp + 0x300], xmm5
vmovdqu xmm5, xmmword [rbx + 0xd0]
vmovups xmmword [rsp + 0x340], xmm5
vmovdqu xmm5, xmmword [rbx + 0xe0]
vmovups xmmword [rsp + 0x380], xmm5
vmovdqu xmm5, xmmword [rbx + 0xf0]
vmovups xmmword [rsp + 0x3c0], xmm5
vmovdqu xmm3, xmmword [rsp + 0x2f0]
xor edx, edx
vmovdqu xmm5, xmmword [rsp + 0x2d0]
vmovdqu xmm2, xmmword [rsp + 0x2e0]
vmovdqu xmm13, xmmword [rsp + 0x300]
vmovdqu xmm4, xmmword [rsp + 0x340]
vmovups xmmword [rsp + 0xd0], xmm5
vpxor xmm5, xmm3, xmm5
vmovdqu xmm6, xmmword [rsp + 0x310]
vmovdqu xmm1, xmmword [rsp + 0x320]
vmovups xmmword [rsp + 0x70], xmm2
vpxor xmm2, xmm13, xmm2
vmovdqu xmm0, xmmword [rsp + 0x330]
vmovups xmmword [rsp + 0xb0], xmm3
vmovdqu xmm3, xmm2
vmovdqu xmm7, xmmword [rsp + 0x350]
vmovdqu xmm15, xmmword [rsp + 0x360]
vmovups xmmword [rsp + 0x230], xmm2
vpxor xmm2, xmm2, xmm5
vmovdqu xmm14, xmmword [rsp + 0x390]
vmovdqu xmm10, xmmword [rsp + 0x3c0]
vmovups xmmword [rsp + 0x80], xmm4
vmovdqu xmm12, xmmword [rsp + 0x370]
vmovdqu xmm4, xmmword [rsp + 0x3b0]
vmovups xmmword [rsp + 0x220], xmm2
vmovdqu xmm2, xmmword [rsp + 0x80]
vmovups xmmword [rsp + 0xe0], xmm6
vmovups xmmword [rsp + 0x60], xmm7
vmovdqu xmm7, xmm5
vmovups xmmword [rsp + 0x240], xmm5
vpxor xmm5, xmm0, xmm6
vpxor xmm6, xmm2, xmm1
vmovups xmmword [rsp + 0x90], xmm1
vmovdqu xmm2, xmm6
vmovups xmmword [rsp + 0xc0], xmm0
vmovups xmmword [rsp + 0x30], xmm15
vmovdqu xmm15, xmmword [rsp + 0x380]
vmovups xmmword [rsp + 0x50], xmm14
vmovdqu xmm14, xmmword [rsp + 0x3a0]
vmovups xmmword [rsp + 0x40], xmm10
vmovdqu xmm10, xmm5
vmovups xmmword [rsp + 0x250], xmm5
vmovups xmmword [rsp + 0x260], xmm6
vpxor xmm0, xmm15, xmmword [rsp + 0x30]
vpxor xmm6, xmm6, xmm5
vpxor xmm5, xmm12, xmmword [rsp + 0x60]
vmovups xmmword [rsp + 0x210], xmm6
vpxor xmm1, xmm14, xmmword [rsp + 0x40]
vmovups xmmword [rsp + 0x270], xmm5
vmovdqu xmm6, xmm5
vmovups xmmword [rsp + 0x280], xmm0
vmovups xmmword [rsp + 0x20], xmm0
vpxor xmm0, xmm0, xmm5
vpxor xmm5, xmm4, xmmword [rsp + 0x50]
vmovups xmmword [rsp + 0x200], xmm0
vmovdqu xmm0, xmm1
vmovups xmmword [rsp + 0xa0], xmm5
vmovups xmmword [rsp + 0x290], xmm5
vpxor xmm5, xmm1, xmm5
vmovups xmmword [rsp + 0x1f0], xmm5
vmovdqu xmm5, xmmword [rsp + 0x1e0]
vmovups xmmword [rsp + 0x2a0], xmm1
vmovdqu xmm1, xmmword [rsp + 0xa0]
vmovups xmmword [rsp + 0xf0], xmm5
vpxor xmm5, xmm5, xmm5
test eax, eax
je 0x478e1c
vmovdqu xmm2, xmm4
vmovdqu xmm6, xmm15
vmovdqu xmm4, xmm12
vmovdqu xmm12, xmm2
nop word cs:[rax + rax]
vmovdqu xmm3, xmmword [rsp + 0xf0]
inc edx
vmovdqu xmm2, xmmword [rsp + 0xd0]
vmovdqu xmm15, xmmword [rsp + 0xb0]
vpaddd xmm0, xmm8, xmm3
vaesenc xmm2, xmm2, xmm3
vmovdqu xmm3, xmmword [rsp + 0xe0]
vaesenc xmm2, xmm2, xmm5
vaesenc xmm7, xmm3, xmm0
vmovdqu xmm3, xmmword [rsp + 0x60]
vpaddd xmm0, xmm8, xmm0
vaesenc xmm1, xmm3, xmm0
vmovdqu xmm3, xmmword [rsp + 0x50]
vpaddd xmm0, xmm0, xmm8
vaesenc xmm10, xmm3, xmm0
vaesenc xmm3, xmm7, xmm5
vmovdqu xmm7, xmmword [rsp + 0x70]
vpaddd xmm0, xmm0, xmm8
vmovups xmmword [rsp + 0x20], xmm3
vaesenc xmm3, xmm1, xmm5
vaesenc xmm10, xmm10, xmm5
vmovups xmmword [rsp + 0x50], xmm3
vaesenc xmm3, xmm7, xmm0
vpaddd xmm0, xmm0, xmm8
vmovdqu xmm7, xmmword [rsp + 0x90]
vaesenc xmm3, xmm3, xmm5
vaesenc xmm1, xmm7, xmm0
vmovdqu xmm7, xmmword [rsp + 0x30]
vpaddd xmm0, xmm0, xmm8
vaesenc xmm1, xmm1, xmm5
vaesenc xmm7, xmm7, xmm0
vpaddd xmm0, xmm0, xmm8
vaesenc xmm7, xmm7, xmm5
vaesenc xmm14, xmm14, xmm0
vpaddd xmm0, xmm0, xmm8
vmovups xmmword [rsp + 0x60], xmm7
vaesenc xmm15, xmm15, xmm0
vpaddd xmm0, xmm0, xmm8
vmovdqu xmm7, xmmword [rsp + 0xc0]
vaesenc xmm15, xmm15, xmm5
vaesenc xmm14, xmm14, xmm5
vaesenc xmm7, xmm7, xmm0
vpaddd xmm0, xmm0, xmm8
vmovups xmmword [rsp + 0x30], xmm15
vaesenc xmm4, xmm4, xmm0
vpaddd xmm0, xmm0, xmm8
vaesenc xmm7, xmm7, xmm5
vaesenc xmm12, xmm12, xmm0
vpaddd xmm0, xmm0, xmm8
vaesenc xmm4, xmm4, xmm5
vaesenc xmm15, xmm12, xmm5
vaesenc xmm12, xmm13, xmm0
vpaddd xmm0, xmm0, xmm8
vmovdqu xmm13, xmmword [rsp + 0x80]
vmovups xmmword [rsp + 0x70], xmm15
vmovdqu xmm15, xmmword [rsp + 0x40]
vaesenc xmm13, xmm13, xmm0
vpaddd xmm0, xmm0, xmm8
vaesenc xmm6, xmm6, xmm0
vpaddd xmm0, xmm0, xmm8
vaesenc xmm13, xmm13, xmm5
vaesenc xmm15, xmm15, xmm0
vpaddd xmm0, xmm0, xmm8
vaesenc xmm6, xmm6, xmm5
vmovups xmmword [rsp + 0x80], xmm13
vmovups xmmword [rsp + 0x1d0], xmm0
vaesenc xmm0, xmm12, xmm5
vpaddb xmm12, xmm2, xmm2
vaesenc xmm15, xmm15, xmm5
vmovups xmmword [rsp + 0x40], xmm0
vpsrlw xmm0, xmm2, 7
vpand xmm0, xmm11, xmm0
vpshufb xmm0, xmm9, xmm0
vpxor xmm0, xmm12, xmm0
vpaddb xmm12, xmm1, xmm1
vmovups xmmword [rsp + 0xa0], xmm0
vpsrlw xmm0, xmm1, 7
vpand xmm0, xmm11, xmm0
vpshufb xmm0, xmm9, xmm0
vpxor xmm12, xmm12, xmm0
vpxor xmm0, xmm1, xmm2
vpxor xmm1, xmm4, xmm1
vmovups xmmword [rsp + 0x90], xmm0
vpsrlw xmm0, xmm4, 7
vpxor xmm2, xmm4, xmm2
vmovups xmmword [rsp + 0x1c0], xmm12
vpand xmm0, xmm11, xmm0
vpaddb xmm12, xmm4, xmm4
vpshufb xmm0, xmm9, xmm0
vpxor xmm12, xmm12, xmm0
vpsrlw xmm0, xmm15, 7
vmovups xmmword [rsp + 0x1b0], xmm12
vpand xmm0, xmm11, xmm0
vpaddb xmm12, xmm15, xmm15
vpshufb xmm0, xmm9, xmm0
vpxor xmm13, xmm12, xmm0
vpsrlw xmm0, xmm3, 7
vpaddb xmm12, xmm3, xmm3
vmovups xmmword [rsp + 0x1a0], xmm13
vpand xmm0, xmm11, xmm0
vpshufb xmm0, xmm9, xmm0
vpxor xmm13, xmm12, xmm0
vpsrlw xmm0, xmm7, 7
vpaddb xmm12, xmm7, xmm7
vmovups xmmword [rsp + 0x190], xmm13
vpand xmm0, xmm11, xmm0
vpshufb xmm0, xmm9, xmm0
vpxor xmm13, xmm12, xmm0
vpsrlw xmm0, xmm6, 7
vpaddb xmm12, xmm6, xmm6
vmovups xmmword [rsp + 0x180], xmm13
vpand xmm0, xmm11, xmm0
vpxor xmm13, xmm7, xmm3
vpxor xmm7, xmm6, xmm7
vpshufb xmm0, xmm9, xmm0
vpxor xmm3, xmm6, xmm3
vmovups xmmword [rsp + 0xe0], xmm13
vpxor xmm13, xmm12, xmm0
vpsrlw xmm0, xmm10, 7
vpaddb xmm12, xmm10, xmm10
vmovups xmmword [rsp + 0x170], xmm13
vpand xmm0, xmm11, xmm0
vpshufb xmm0, xmm9, xmm0
vpxor xmm0, xmm12, xmm0
vmovdqu xmm12, xmmword [rsp + 0x30]
vmovups xmmword [rsp + 0x160], xmm0
vpsrlw xmm0, xmm12, 7
vpaddb xmm12, xmm12, xmmword [rsp + 0x30]
vpand xmm0, xmm11, xmm0
vpshufb xmm0, xmm9, xmm0
vpxor xmm13, xmm12, xmm0
vmovups xmmword [rsp + 0x150], xmm13
vmovdqu xmm13, xmmword [rsp + 0x80]
vpxor xmm4, xmm4, xmmword [rsp + 0x90]
vpsrlw xmm0, xmm13, 7
vpaddb xmm12, xmm13, xmm13
vpxor xmm13, xmm13, xmmword [rsp + 0x30]
vpand xmm0, xmm11, xmm0
vmovups xmmword [rsp + 0xd0], xmm13
vpshufb xmm0, xmm9, xmm0
vpxor xmm0, xmm12, xmm0
vmovdqu xmm12, xmmword [rsp + 0x50]
vmovups xmmword [rsp + 0x140], xmm0
vpsrlw xmm0, xmm12, 7
vpaddb xmm12, xmm12, xmmword [rsp + 0x50]
vpand xmm0, xmm11, xmm0
vpshufb xmm0, xmm9, xmm0
vpxor xmm12, xmm12, xmm0
vpsrlw xmm0, xmm14, 7
vmovups xmmword [rsp + 0x130], xmm12
vpand xmm0, xmm11, xmm0
vpaddb xmm12, xmm14, xmm14
vpshufb xmm0, xmm9, xmm0
vpxor xmm0, xmm12, xmm0
vmovups xmmword [rsp + 0x120], xmm0
vmovdqu xmm0, xmmword [rsp + 0x40]
vpsrlw xmm12, xmm0, 7
vpaddb xmm0, xmm0, xmmword [rsp + 0x40]
vpand xmm12, xmm11, xmm12
vpshufb xmm12, xmm9, xmm12
vpxor xmm13, xmm0, xmm12
vmovdqu xmm12, xmmword [rsp + 0x20]
vmovups xmmword [rsp + 0x110], xmm13
vpsrlw xmm0, xmm12, 7
vpaddb xmm12, xmm12, xmmword [rsp + 0x20]
vpand xmm0, xmm11, xmm0
vpshufb xmm0, xmm9, xmm0
vpxor xmm0, xmm12, xmm0
vmovdqu xmm12, xmmword [rsp + 0x40]
vpxor xmm12, xmm12, xmmword [rsp + 0x20]
vmovups xmmword [rsp + 0x100], xmm0
vmovups xmmword [rsp + 0xc0], xmm12
vmovdqu xmm12, xmmword [rsp + 0x60]
vpsrlw xmm0, xmm12, 7
vpaddb xmm12, xmm12, xmmword [rsp + 0x60]
vpand xmm0, xmm11, xmm0
vpshufb xmm0, xmm9, xmm0
vpxor xmm13, xmm12, xmm0
vmovdqu xmm0, xmmword [rsp + 0x70]
vmovups xmmword [rsp + 0xf0], xmm13
vmovdqu xmm13, xmmword [rsp + 0x1c0]
vpsrlw xmm12, xmm0, 7
vpaddb xmm0, xmm0, xmmword [rsp + 0x70]
vpand xmm12, xmm11, xmm12
vpshufb xmm12, xmm9, xmm12
vpxor xmm0, xmm0, xmm12
vmovdqu xmm12, xmmword [rsp + 0xa0]
vmovups xmmword [rsp + 0xb0], xmm0
vpxor xmm12, xmm12, xmm13
vpxor xmm12, xmm12, xmm1
vmovdqu xmm1, xmmword [rsp + 0x1d0]
vpxor xmm12, xmm12, xmm15
vaesenc xmm12, xmm12, xmm1
vpaddd xmm0, xmm8, xmm1
vmovdqu xmm1, xmm13
vmovdqu xmm13, xmmword [rsp + 0x1b0]
vpxor xmm1, xmm1, xmm13
vpxor xmm1, xmm1, xmm2
vmovdqu xmm2, xmm13
vmovdqu xmm13, xmmword [rsp + 0x1a0]
vpxor xmm1, xmm1, xmm15
vpxor xmm15, xmm15, xmmword [rsp + 0x90]
vpxor xmm2, xmm2, xmm13
vaesenc xmm1, xmm1, xmm0
vpaddd xmm0, xmm0, xmm8
vpxor xmm2, xmm2, xmm15
vaesenc xmm1, xmm1, xmm5
vpxor xmm15, xmm13, xmmword [rsp + 0xa0]
vaesenc xmm2, xmm2, xmm0
vpaddd xmm0, xmm0, xmm8
vpxor xmm4, xmm15, xmm4
vaesenc xmm15, xmm12, xmm5
vmovups xmmword [rsp + 0x90], xmm15
vaesenc xmm4, xmm4, xmm0
vpaddd xmm0, xmm0, xmm8
vaesenc xmm15, xmm2, xmm5
vmovups xmmword [rsp + 0xa0], xmm1
vaesenc xmm4, xmm4, xmm5
vmovdqu xmm13, xmmword [rsp + 0x190]
vmovdqu xmm12, xmmword [rsp + 0x170]
vmovups xmmword [rsp + 0x1a0], xmm4
vmovdqu xmm4, xmmword [rsp + 0x180]
vmovdqu xmm2, xmmword [rsp + 0xe0]
vpxor xmm1, xmm4, xmm13
vpxor xmm6, xmm6, xmm2
vpxor xmm1, xmm1, xmm7
vpaddd xmm7, xmm0, xmm8
vpxor xmm1, xmm1, xmm10
vaesenc xmm1, xmm1, xmm0
vpxor xmm0, xmm4, xmm12
vpxor xmm4, xmm0, xmm3
vmovdqu xmm3, xmm12
vmovdqu xmm12, xmmword [rsp + 0x160]
vpxor xmm4, xmm4, xmm10
vpxor xmm10, xmm10, xmm2
vmovdqu xmm2, xmmword [rsp + 0x50]
vpxor xmm0, xmm3, xmm12
vaesenc xmm4, xmm4, xmm7
vpaddd xmm7, xmm7, xmm8
vpxor xmm10, xmm0, xmm10
vpxor xmm0, xmm12, xmm13
vaesenc xmm3, xmm1, xmm5
vmovdqu xmm12, xmmword [rsp + 0x150]
vaesenc xmm10, xmm10, xmm7
vpxor xmm6, xmm0, xmm6
vpaddd xmm7, xmm7, xmm8
vmovups xmmword [rsp + 0x160], xmm3
vaesenc xmm6, xmm6, xmm7
vaesenc xmm3, xmm10, xmm5
vpaddd xmm7, xmm7, xmm8
vmovdqu xmm10, xmmword [rsp + 0x140]
vaesenc xmm6, xmm6, xmm5
vaesenc xmm4, xmm4, xmm5
vpxor xmm13, xmm2, xmmword [rsp + 0x80]
vmovups xmmword [rsp + 0x170], xmm3
vmovups xmmword [rsp + 0x180], xmm6
vpxor xmm3, xmm2, xmmword [rsp + 0x30]
vpxor xmm1, xmm10, xmm12
vmovdqu xmm6, xmmword [rsp + 0x130]
vpxor xmm1, xmm1, xmm13
vmovdqu xmm13, xmmword [rsp + 0xd0]
vpxor xmm0, xmm10, xmm6
vpxor xmm1, xmm1, xmm14
vpxor xmm3, xmm0, xmm3
vaesenc xmm1, xmm1, xmm7
vpaddd xmm7, xmm7, xmm8
vmovdqu xmm0, xmmword [rsp + 0x120]
vpxor xmm3, xmm3, xmm14
vpxor xmm14, xmm14, xmm13
vaesenc xmm10, xmm1, xmm5
vpxor xmm6, xmm6, xmm0
vaesenc xmm3, xmm3, xmm7
vpxor xmm0, xmm0, xmm12
vmovups xmmword [rsp + 0x80], xmm10
vpxor xmm12, xmm13, xmm2
vpaddd xmm7, xmm7, xmm8
vpxor xmm6, xmm6, xmm14
vmovdqu xmm13, xmmword [rsp + 0x110]
vaesenc xmm6, xmm6, xmm7
vpxor xmm0, xmm0, xmm12
vpaddd xmm7, xmm7, xmm8
vmovdqu xmm2, xmmword [rsp + 0x20]
vaesenc xmm0, xmm0, xmm7
vmovdqu xmm14, xmmword [rsp + 0x60]
vpaddd xmm7, xmm7, xmm8
vmovdqu xmm12, xmmword [rsp + 0xf0]
vaesenc xmm1, xmm0, xmm5
vaesenc xmm6, xmm6, xmm5
vaesenc xmm3, xmm3, xmm5
vmovups xmmword [rsp + 0x120], xmm1
vpxor xmm0, xmm2, xmm14
vmovdqu xmm1, xmmword [rsp + 0x100]
vmovdqu xmm2, xmmword [rsp + 0x70]
vpxor xmm10, xmm1, xmm13
vpxor xmm10, xmm10, xmm0
vpxor xmm0, xmm1, xmm12
vpxor xmm1, xmm14, xmmword [rsp + 0x40]
vpxor xmm10, xmm10, xmm2
vpxor xmm0, xmm0, xmm1
vmovdqu xmm1, xmm2
vaesenc xmm10, xmm10, xmm7
vpxor xmm0, xmm0, xmm2
vpaddd xmm7, xmm7, xmm8
vmovdqu xmm2, xmmword [rsp + 0xb0]
vpxor xmm1, xmm1, xmmword [rsp + 0xc0]
vaesenc xmm0, xmm0, xmm7
vpaddd xmm7, xmm7, xmm8
vpxor xmm2, xmm2, xmm12
vaesenc xmm0, xmm0, xmm5
vpxor xmm2, xmm2, xmm1
vmovdqu xmm1, xmmword [rsp + 0xb0]
vaesenc xmm2, xmm2, xmm7
vpaddd xmm7, xmm7, xmm8
vpxor xmm12, xmm1, xmm13
vaesenc xmm2, xmm2, xmm5
vmovdqu xmm1, xmmword [rsp + 0xc0]
vpxor xmm1, xmm1, xmm14
vpxor xmm1, xmm12, xmm1
vpaddd xmm12, xmm7, xmm8
vmovups xmmword [rsp + 0xf0], xmm12
vaesenc xmm12, xmm10, xmm5
vaesenc xmm1, xmm1, xmm7
vpaddb xmm10, xmm4, xmm4
vmovups xmmword [rsp + 0x20], xmm12
vpsrlw xmm12, xmm6, 7
vaesenc xmm1, xmm1, xmm5
vmovdqu xmm14, xmmword [rsp + 0x90]
vpand xmm12, xmm11, xmm12
vpsrlw xmm13, xmm14, 7
vpand xmm13, xmm11, xmm13
vpshufb xmm7, xmm9, xmm13
vpaddb xmm13, xmm14, xmm14
vpxor xmm13, xmm13, xmm7
vpsrlw xmm7, xmm4, 7
vpand xmm7, xmm11, xmm7
vpshufb xmm7, xmm9, xmm7
vpxor xmm7, xmm10, xmm7
vpxor xmm10, xmm4, xmm14
vpaddb xmm14, xmm1, xmm1
vmovups xmmword [rsp + 0x30], xmm10
vpshufb xmm10, xmm9, xmm12
vpaddb xmm12, xmm6, xmm6
vpxor xmm4, xmm6, xmm4
vpxor xmm12, xmm12, xmm10
vpsrlw xmm10, xmm1, 7
vpand xmm10, xmm11, xmm10
vpshufb xmm10, xmm9, xmm10
vpxor xmm10, xmm14, xmm10
vpxor xmm14, xmm7, xmm13
vpxor xmm7, xmm12, xmm7
vpxor xmm4, xmm14, xmm4
vpxor xmm12, xmm10, xmm12
vpxor xmm10, xmm10, xmm13
vmovdqu xmm14, xmmword [rsp + 0x160]
vmovdqu xmm13, xmmword [rsp + 0x1a0]
vpxor xmm4, xmm4, xmm1
vmovups xmmword [rsp + 0xd0], xmm4
vpxor xmm4, xmm6, xmmword [rsp + 0x90]
vpxor xmm7, xmm7, xmm4
vmovdqu xmm4, xmmword [rsp + 0x30]
vpxor xmm7, xmm7, xmm1
vpxor xmm6, xmm6, xmm4
vpxor xmm1, xmm1, xmm4
vmovups xmmword [rsp + 0xe0], xmm7
vpxor xmm7, xmm3, xmm14
vpxor xmm4, xmm10, xmm6
vpxor xmm12, xmm12, xmm1
vpaddb xmm6, xmm3, xmm3
vmovups xmmword [rsp + 0x50], xmm4
vpsrlw xmm4, xmm14, 7
vpaddb xmm10, xmm2, xmm2
vpand xmm4, xmm11, xmm4
vmovups xmmword [rsp + 0x60], xmm12
vpaddb xmm12, xmm13, xmm13
vpshufb xmm1, xmm9, xmm4
vpaddb xmm4, xmm14, xmm14
vpxor xmm4, xmm4, xmm1
vpsrlw xmm1, xmm3, 7
vpxor xmm3, xmm3, xmm2
vpand xmm1, xmm11, xmm1
vpshufb xmm1, xmm9, xmm1
vpxor xmm1, xmm6, xmm1
vpsrlw xmm6, xmm2, 7
vpand xmm6, xmm11, xmm6
vpshufb xmm6, xmm9, xmm6
vpxor xmm6, xmm10, xmm6
vpsrlw xmm10, xmm13, 7
vpand xmm10, xmm11, xmm10
vpshufb xmm10, xmm9, xmm10
vpxor xmm10, xmm12, xmm10
vpxor xmm12, xmm4, xmm1
vpxor xmm1, xmm1, xmm6
vpxor xmm3, xmm12, xmm3
vpxor xmm6, xmm6, xmm10
vpxor xmm12, xmm3, xmm13
vpxor xmm3, xmm2, xmm14
vpxor xmm2, xmm7, xmm2
vpxor xmm1, xmm1, xmm3
vmovups xmmword [rsp + 0x70], xmm12
vpxor xmm14, xmm1, xmm13
vpxor xmm1, xmm7, xmm13
vmovdqu xmm13, xmmword [rsp + 0x80]
vmovups xmmword [rsp + 0x90], xmm14
vpxor xmm14, xmm6, xmm1
vmovdqu xmm6, xmmword [rsp + 0x180]
vpsrlw xmm7, xmm0, 7
vpsrlw xmm1, xmm13, 7
vpaddb xmm12, xmm13, xmm13
vmovups xmmword [rsp + 0x30], xmm14
vpxor xmm14, xmm4, xmm10
vpand xmm1, xmm11, xmm1
vpsrlw xmm4, xmm15, 7
vpand xmm7, xmm11, xmm7
vpshufb xmm1, xmm9, xmm1
vpand xmm4, xmm11, xmm4
vpxor xmm14, xmm14, xmm2
vpxor xmm1, xmm12, xmm1
vpsrlw xmm12, xmm6, 7
vpshufb xmm2, xmm9, xmm7
vpshufb xmm3, xmm9, xmm4
vpaddb xmm7, xmm0, xmm0
vpaddb xmm4, xmm15, xmm15
vpand xmm12, xmm11, xmm12
vpxor xmm7, xmm7, xmm2
vpxor xmm4, xmm4, xmm3
vpshufb xmm3, xmm9, xmm12
vpaddb xmm12, xmm6, xmm6
vpxor xmm2, xmm0, xmm13
vpxor xmm12, xmm12, xmm3
vpxor xmm0, xmm0, xmm15
vpxor xmm3, xmm1, xmm7
vpxor xmm0, xmm3, xmm0
vpxor xmm7, xmm7, xmm4
vpxor xmm4, xmm4, xmm12
vmovdqu xmm3, xmmword [rsp + 0x170]
vpxor xmm0, xmm0, xmm6
vpxor xmm12, xmm1, xmm12
vmovups xmmword [rsp + 0xb0], xmm0
vpxor xmm0, xmm15, xmm13
vpxor xmm7, xmm7, xmm0
vpxor xmm0, xmm7, xmm6
vmovdqu xmm7, xmmword [rsp + 0x120]
vmovups xmmword [rsp + 0xc0], xmm0
vpxor xmm0, xmm2, xmm6
vpxor xmm2, xmm2, xmm15
vmovdqu xmm6, xmmword [rsp + 0x20]
vpxor xmm12, xmm12, xmm2
vpxor xmm4, xmm4, xmm0
vmovdqu xmm2, xmmword [rsp + 0xa0]
vpsrlw xmm0, xmm6, 7
vpaddb xmm15, xmm6, xmm6
vpsrlw xmm10, xmm2, 7
vpand xmm0, xmm11, xmm0
vpand xmm10, xmm11, xmm10
vpshufb xmm0, xmm9, xmm0
vpshufb xmm1, xmm9, xmm10
vpaddb xmm10, xmm2, xmm2
vpxor xmm2, xmm6, xmm2
vpsrlw xmm6, xmm3, 7
vpxor xmm0, xmm15, xmm0
vpxor xmm10, xmm10, xmm1
vpand xmm6, xmm11, xmm6
vpsrlw xmm15, xmm7, 7
vpxor xmm13, xmm0, xmm10
vpshufb xmm1, xmm9, xmm6
vpand xmm15, xmm11, xmm15
vpaddb xmm6, xmm3, xmm3
vpxor xmm6, xmm6, xmm1
vpshufb xmm1, xmm9, xmm15
vpaddb xmm15, xmm7, xmm7
vpxor xmm15, xmm15, xmm1
vmovdqu xmm1, xmmword [rsp + 0xa0]
vpxor xmm1, xmm1, xmm3
vpxor xmm13, xmm13, xmm1
vpxor xmm1, xmm10, xmm6
vpxor xmm10, xmm3, xmmword [rsp + 0x20]
vpxor xmm6, xmm6, xmm15
vpxor xmm15, xmm0, xmm15
vpxor xmm13, xmm13, xmm7
vpxor xmm10, xmm1, xmm10
vpxor xmm1, xmm10, xmm7
vpxor xmm10, xmm2, xmm3
vmovups xmmword [rsp + 0x80], xmm1
vpxor xmm1, xmm2, xmm7
vpxor xmm2, xmm15, xmm10
vpxor xmm6, xmm6, xmm1
vmovups xmmword [rsp + 0x40], xmm2
cmp edx, eax
jne 0x4782b0
vmovdqu xmm1, xmmword [rsp + 0x30]
vmovdqu xmm15, xmm6
vmovdqu xmm7, xmm2
vmovdqu xmm5, xmm12
vmovdqu xmm6, xmmword [rsp + 0xc0]
vmovdqu xmm12, xmm4
vmovdqu xmm0, xmmword [rsp + 0x80]
vmovdqu xmm4, xmm5
vmovdqu xmm2, xmmword [rsp + 0x90]
vmovdqu xmm5, xmmword [rsp + 0x70]
vmovups xmmword [rsp + 0x360], xmm1
vpxor xmm1, xmm15, xmm1
vmovdqu xmm3, xmmword [rsp + 0xb0]
vmovups xmmword [rsp + 0x20], xmm1
vpxor xmm1, xmm4, xmmword [rsp + 0x50]
vpxor xmm10, xmm6, xmmword [rsp + 0xe0]
vmovups xmmword [rsp + 0x320], xmm2
vpxor xmm2, xmm0, xmm2
vmovups xmmword [rsp + 0x330], xmm6
vpxor xmm6, xmm12, xmmword [rsp + 0x60]
vmovups xmmword [rsp + 0x340], xmm0
vpxor xmm0, xmm14, xmmword [rsp + 0x40]
vmovups xmmword [rsp + 0x2f0], xmm3
vmovups xmmword [rsp + 0x3c0], xmm7
vpxor xmm7, xmm3, xmmword [rsp + 0xd0]
vpxor xmm3, xmm13, xmm5
vmovups xmmword [rsp + 0x2e0], xmm5
vmovups xmmword [rsp + 0x3a0], xmm14
vmovups xmmword [rsp + 0x370], xmm12
vmovups xmmword [rsp + 0x3b0], xmm4
vmovups xmmword [rsp + 0x300], xmm13
vmovups xmmword [rsp + 0x380], xmm15
vmovups xmmword [rsp + 0xa0], xmm1
vpxor xmm5, xmm7, xmmword [rsp + 0x220]
vmovups xmmword [rsp + 0x60], xmm5
vpxor xmm5, xmm10, xmmword [rsp + 0x210]
vmovups xmmword [rsp + 0xd0], xmm5
vpxor xmm5, xmm6, xmmword [rsp + 0x200]
vmovups xmmword [rsp + 0x50], xmm5
vmovdqu xmm5, xmmword [rsp + 0x1f0]
vpxor xmm5, xmm5, xmm1
cmp r12d, 0x100
je 0x479048
vpxor xmm5, xmm3, xmmword [rsp + 0x230]
vpxor xmm7, xmm7, xmmword [rsp + 0x240]
vpxor xmm3, xmm10, xmmword [rsp + 0x250]
vpxor xmm1, xmm1, xmmword [rsp + 0x290]
vpxor xmm14, xmm0, xmmword [rsp + 0x2a0]
vmovups xmmword [rsp + 0x70], xmm5
vmovups xmmword [rsp + 0x2e0], xmm5
vpxor xmm5, xmm2, xmmword [rsp + 0x260]
vpxor xmm2, xmm6, xmmword [rsp + 0x270]
vmovups xmmword [rsp + 0x2d0], xmm7
vmovups xmmword [rsp + 0x90], xmm5
vmovups xmmword [rsp + 0x320], xmm5
vmovdqu xmm5, xmmword [rsp + 0x20]
vpxor xmm5, xmm5, xmmword [rsp + 0x280]
vmovups xmmword [rsp + 0x310], xmm3
vmovups xmmword [rsp + 0x350], xmm2
vmovups xmmword [rsp + 0x30], xmm5
vmovups xmmword [rsp + 0x360], xmm5
vmovups xmmword [rsp + 0x390], xmm1
vmovups xmmword [rsp + 0x3a0], xmm14
inc ecx
add rbx, r14
cmp ebp, ecx
jne 0x477f30
vmovdqu xmm5, xmm7
vmovdqu xmm6, xmm14
vmovdqu xmm14, xmm15
vmovdqu xmm15, xmmword [rsp + 0x40]
vmovdqu xmm7, xmm4
vmovdqu xmm10, xmm13
vmovdqu xmm4, xmm5
vmovdqu xmm5, xmmword [rsp + 0x70]
vmovups xmmword [rsi + 0x30], xmm10
vmovups xmm8, xmmword [rsp + 0x3f0]
vmovups xmmword [rsi + 0xa0], xmm12
vmovups xmm9, xmmword [rsp + 0x400]
vmovups xmm10, xmmword [rsp + 0x410]
vmovups xmmword [rsi + 0x10], xmm5
vmovdqu xmm5, xmmword [rsp + 0xb0]
vmovups xmm11, xmmword [rsp + 0x420]
vmovups xmmword [rsi + 0xb0], xmm14
vmovups xmm12, xmmword [rsp + 0x430]
vmovups xmm13, xmmword [rsp + 0x440]
vmovups xmmword [rsi + 0x20], xmm5
vmovdqu xmm5, xmmword [rsp + 0x90]
vmovups xmm14, xmmword [rsp + 0x450]
vmovups xmmword [rsi + 0xd0], xmm6
vmovups xmm6, xmmword [rsp + 0x3d0]
vmovups xmmword [rsi + 0x50], xmm5
vmovdqu xmm5, xmmword [rsp + 0xc0]
vmovups xmmword [rsi + 0xe0], xmm7
vmovups xmm7, xmmword [rsp + 0x3e0]
vmovups xmmword [rsi + 0x60], xmm5
vmovdqu xmm5, xmmword [rsp + 0x80]
vmovups xmmword [rsi + 0xf0], xmm15
vmovups xmm15, xmmword [rsp + 0x460]
vmovups xmmword [rsi + 0x70], xmm5
vmovdqu xmm5, xmmword [rsp + 0x30]
vmovups xmmword [rsi], xmm4
vmovups xmmword [rsi + 0x40], xmm3
vmovups xmmword [rsi + 0x80], xmm2
vmovups xmmword [rsi + 0x90], xmm5
vmovups xmmword [rsi + 0xc0], xmm1
add rsp, 0x478
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
vpxor xmm7, xmm3, xmmword [rsp + 0x60]
vpxor xmm1, xmm5, xmm0
vpxor xmm3, xmm2, xmmword [rsp + 0xd0]
vmovups xmmword [rsp + 0x390], xmm1
vmovdqu xmm2, xmmword [rsp + 0x20]
vpxor xmm2, xmm2, xmmword [rsp + 0x50]
vmovups xmmword [rsp + 0x2d0], xmm7
vmovups xmmword [rsp + 0x310], xmm3
vmovups xmmword [rsp + 0x350], xmm2
jmp 0x478f11
vmovdqu xmm5, xmmword [rsp + 0x2e0]
vmovdqu xmm4, xmmword [rsp + 0x2d0]
vmovdqu xmm10, xmmword [rsp + 0x300]
vmovdqu xmm3, xmmword [rsp + 0x310]
vmovdqu xmm2, xmmword [rsp + 0x350]
vmovups xmmword [rsp + 0x70], xmm5
vmovdqu xmm5, xmmword [rsp + 0x2f0]
vmovdqu xmm12, xmmword [rsp + 0x370]
vmovdqu xmm14, xmmword [rsp + 0x380]
vmovups xmmword [rsp + 0xb0], xmm5
vmovdqu xmm5, xmmword [rsp + 0x320]
vmovdqu xmm1, xmmword [rsp + 0x390]
vmovdqu xmm7, xmmword [rsp + 0x3b0]
vmovdqu xmm15, xmmword [rsp + 0x3c0]
vmovups xmmword [rsp + 0x90], xmm5
vmovdqu xmm5, xmmword [rsp + 0x330]
vmovups xmmword [rsp + 0xc0], xmm5
vmovdqu xmm5, xmmword [rsp + 0x340]
vmovups xmmword [rsp + 0x80], xmm5
vmovdqu xmm5, xmmword [rsp + 0x360]
vmovups xmmword [rsp + 0x30], xmm5
vmovdqu xmm5, xmmword [rsp + 0x3a0]
vmovdqu xmm6, xmm5
jmp 0x478f3e