Function at 0x64a1c0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x128
vmovups xmmword [rsp + 0xe0], xmm6
vmovups xmmword [rsp + 0xf0], xmm7
vmovups xmmword [rsp + 0x100], xmm8
vmovups xmmword [rsp + 0x110], xmm9
mov rbp, qword [rsp + 0x198]
mov r15, qword [rsp + 0x190]
mov eax, r8d
mov r13, rdx
mov edx, 0xaaaaaaab
mov dword [rsp + 0x180], r8d
add eax, 2
mov qword [rsp + 0x188], r9
mov r12, rcx
imul rax, rdx
mov dword [rsp + 0x7c], 0
shr rax, 0x21
lea edx, [rax + 1]
and edx, 0xfffffffe
cmp dword [rbp], 5
mov dword [rsp + 0x78], edx
jne 0x64a257
and eax, 0xfffffffe
mov ebx, edx
sub ebx, eax
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x7c], ebx
mov eax, dword [r12]
mov edx, dword [rbp + 0x10]
mov rdi, qword [rbp + 0x18]
mov dword [r15], eax
mov ecx, dword [r12 + 0x14]
mov ebx, edx
shr ebx, 7
mov dword [r15 + 4], ecx
mov ecx, dword [r12 + 0x28]
mov dword [r15 + 8], ecx
mov ecx, dword [r12 + 0x3c]
mov dword [r15 + 0xc], ecx
mov ecx, dword [r12 + 0x10]
mov dword [r15 + 0x10], ecx
mov ecx, dword [r12 + 0x24]
mov dword [r15 + 0x14], ecx
mov ecx, dword [r12 + 0x38]
mov dword [r15 + 0x18], ecx
mov ecx, dword [r12 + 0xc]
mov dword [r15 + 0x1c], ecx
mov ecx, dword [r12 + 0x20]
mov dword [r15 + 0x20], ecx
mov ecx, dword [r12 + 0x34]
mov dword [r15 + 0x24], ecx
mov ecx, dword [r12 + 8]
mov dword [r15 + 0x28], ecx
mov ecx, dword [r12 + 0x1c]
mov dword [r15 + 0x2c], ecx
mov ecx, dword [r12 + 0x30]
mov dword [r15 + 0x30], ecx
mov ecx, dword [r12 + 4]
mov dword [r15 + 0x34], ecx
mov ecx, dword [r12 + 0x18]
mov dword [r15 + 0x38], ecx
mov ecx, dword [r12 + 0x2c]
mov dword [r15 + 0x3c], ecx
mov ecx, dword [r12 + 0x40]
mov dword [r15 + 0x40], ecx
mov ecx, dword [r12 + 0x54]
mov dword [r15 + 0x44], ecx
mov ecx, dword [r12 + 0x68]
mov dword [r15 + 0x48], ecx
mov ecx, dword [r12 + 0x7c]
mov dword [r15 + 0x4c], ecx
mov ecx, dword [r12 + 0x50]
mov dword [r15 + 0x50], ecx
mov ecx, dword [r12 + 0x64]
mov dword [r15 + 0x54], ecx
mov ecx, dword [r12 + 0x78]
mov dword [r15 + 0x58], ecx
mov ecx, dword [r12 + 0x4c]
mov dword [r15 + 0x5c], ecx
mov ecx, dword [r12 + 0x60]
mov dword [r15 + 0x60], ecx
mov ecx, dword [r12 + 0x74]
mov dword [r15 + 0x64], ecx
mov ecx, dword [r12 + 0x48]
mov dword [r15 + 0x68], ecx
mov ecx, dword [r12 + 0x5c]
mov dword [r15 + 0x6c], ecx
mov ecx, dword [r12 + 0x70]
mov dword [r15 + 0x70], ecx
mov ecx, dword [r12 + 0x44]
mov dword [r15 + 0x74], ecx
mov ecx, dword [r12 + 0x58]
mov dword [r15 + 0x78], ecx
mov ecx, dword [r12 + 0x6c]
mov dword [rsp + 0x6c], ebx
mov dword [r15 + 0x7c], ecx
je 0x64a8c2
sub ebx, 1
mov eax, 1
mov rsi, rdi
mov qword [rsp + 0x178], r13
cmove eax, ebx
xor ebx, ebx
mov qword [rsp + 0x170], r12
mov r13d, ebx
lea r14d, [rax + 1]
mov dword [rsp + 0x70], eax
lea rax, [r15 + 0x20]
mov qword [rsp + 0x40], rax
lea rax, [r15 + 0x80]
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x90], r14d
jmp 0x64a414
mov rdx, rbp
mov rcx, r15
vzeroupper
call fcn.00649f60
sub rsi, 0xffffffffffffff80
lea eax, [r13 + 1]
cmp dword [rsp + 0x70], r13d
je 0x64a6cb
mov r13d, eax
lea rax, [rsi + 0x20]
cmp r15, rax
jae 0x64a428
cmp qword [rsp + 0x40], rsi
ja 0x64b110
vmovdqu xmm5, xmmword [r15]
vinserti128 ymm0, ymm5, xmmword [r15 + 0x10], 1
vmovups xmmword [rsi], xmm0
vextracti128 xmmword [rsi + 0x10], ymm0, 1
vmovdqu xmm5, xmmword [r15 + 0x20]
vinserti128 ymm0, ymm5, xmmword [r15 + 0x30], 1
vmovups xmmword [rsi + 0x20], xmm0
vextracti128 xmmword [rsi + 0x30], ymm0, 1
vmovdqu xmm5, xmmword [r15 + 0x40]
vinserti128 ymm0, ymm5, xmmword [r15 + 0x50], 1
vmovups xmmword [rsi + 0x40], xmm0
vextracti128 xmmword [rsi + 0x50], ymm0, 1
vmovdqu xmm4, xmmword [r15 + 0x60]
vinserti128 ymm0, ymm4, xmmword [r15 + 0x70], 1
vmovups xmmword [rsi + 0x60], xmm0
vextracti128 xmmword [rsi + 0x70], ymm0, 1
cmp rdi, qword [rbp + 0x18]
jne 0x64a3f0
mov eax, dword [r15 + 0x40]
mov r14d, dword [rbp + 4]
mov rbx, r15
mov r12d, dword [r15 + 0x44]
mov r11d, dword [r15 + 0x4c]
mov r10d, dword [r15 + 0x54]
mov r9d, dword [r15 + 0x5c]
mov dword [rsp + 0x48], eax
mov eax, dword [r15 + 0x48]
mov r8d, dword [r15 + 0x64]
mov ecx, dword [r15 + 0x6c]
mov edx, dword [r15 + 0x74]
mov dword [rsp + 0x50], eax
mov eax, dword [r15 + 0x50]
mov dword [rsp + 0x54], eax
mov eax, dword [r15 + 0x58]
mov dword [rsp + 0x58], eax
mov eax, dword [r15 + 0x60]
mov dword [rsp + 0x5c], eax
mov eax, dword [r15 + 0x68]
mov dword [rsp + 0x60], eax
mov eax, dword [r15 + 0x70]
mov dword [rsp + 0x64], eax
mov eax, dword [r15 + 0x78]
mov dword [rsp + 0x68], eax
mov eax, dword [r15 + 0x7c]
vmovdqu xmm5, xmmword [rbx + 0x20]
vinserti128 ymm1, ymm5, xmmword [rbx + 0x30], 1
vmovd xmm5, dword [rsp + 0x64]
vmovd xmm4, dword [rsp + 0x68]
vmovd xmm7, dword [rsp + 0x60]
vpinsrd xmm2, xmm5, edx, 1
vmovd xmm5, dword [rsp + 0x5c]
vpinsrd xmm3, xmm4, eax, 1
mov edx, r14d
vpinsrd xmm4, xmm7, ecx, 1
vmovd xmm7, dword [rsp + 0x58]
vpunpcklqdq xmm2, xmm2, xmm3
vmovd xmm3, dword [rsp + 0x54]
vpinsrd xmm0, xmm5, r8d, 1
vmovd xmm5, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x88]
vpunpcklqdq xmm0, xmm0, xmm4
vmovdqu xmm4, xmmword [rbx]
vpinsrd xmm3, xmm3, r10d, 1
vinserti128 ymm0, ymm0, xmm2, 1
vinserti128 ymm2, ymm4, xmmword [rbx + 0x10], 1
vpinsrd xmm4, xmm7, r9d, 1
vmovd xmm7, dword [rsp + 0x48]
vpxor ymm0, ymm0, ymm1
vpinsrd xmm5, xmm5, r11d, 1
vpunpcklqdq xmm3, xmm3, xmm4
vmovups xmmword [rsp + 0xc0], xmm0
vpinsrd xmm1, xmm7, r12d, 1
vextracti128 xmmword [rsp + 0xd0], ymm0, 1
vpunpcklqdq xmm1, xmm1, xmm5
vinserti128 ymm1, ymm1, xmm3, 1
vpxor ymm1, ymm1, ymm2
vmovups xmmword [rsp + 0xa0], xmm1
vextracti128 xmmword [rsp + 0xb0], ymm1, 1
vzeroupper
add rbx, 0x40
call fcn.00649000
mov eax, dword [rsp + 0xa0]
vmovdqu xmm2, xmmword [rsp + 0xc0]
vmovdqu xmm4, xmmword [rsp + 0xa0]
mov r12d, dword [rsp + 0xa4]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0xa8]
mov r11d, dword [rsp + 0xac]
mov r10d, dword [rsp + 0xb4]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0xb0]
mov r9d, dword [rsp + 0xbc]
mov r8d, dword [rsp + 0xc4]
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0xb8]
mov ecx, dword [rsp + 0xcc]
mov edx, dword [rsp + 0xd4]
vinserti128 ymm0, ymm2, xmmword [rsp + 0xd0], 1
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0xc0]
vinserti128 ymm1, ymm4, xmmword [rsp + 0xb0], 1
vmovups xmmword [rbx - 0x20], xmm0
vextracti128 xmmword [rbx - 0x10], ymm0, 1
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0xc8]
vextracti128 xmmword [rbx - 0x30], ymm1, 1
vmovups xmmword [rbx - 0x40], xmm1
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0xd0]
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0xdc]
cmp rbx, qword [rsp + 0x80]
jne 0x64a4fb
lea eax, [r13 + 1]
sub rsi, 0xffffffffffffff80
cmp dword [rsp + 0x70], r13d
jne 0x64a411
mov eax, dword [rsp + 0x90]
mov r12, qword [rsp + 0x170]
mov r13, qword [rsp + 0x178]
mov r14, rax
shl rax, 7
lea rsi, [rdi + rax]
lea rax, [r15 + 0x80]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x80], rax
cmp dword [rsp + 0x6c], r14d
jbe 0x64a8bf
mov qword [rsp + 0x178], r13
mov qword [rsp + 0x170], r12
mov r12d, r14d
nop word [rax + rax]
lea rax, [rsi + 0x20]
cmp r15, rax
jae 0x64a744
cmp qword [rsp + 0x40], rsi
ja 0x64b360
vmovdqu xmm2, xmmword [r15]
vinserti128 ymm0, ymm2, xmmword [r15 + 0x10], 1
vmovups xmmword [rsi], xmm0
vextracti128 xmmword [rsi + 0x10], ymm0, 1
vmovdqu xmm3, xmmword [r15 + 0x20]
vinserti128 ymm0, ymm3, xmmword [r15 + 0x30], 1
vmovups xmmword [rsi + 0x20], xmm0
vextracti128 xmmword [rsi + 0x30], ymm0, 1
vmovdqu xmm4, xmmword [r15 + 0x40]
vinserti128 ymm0, ymm4, xmmword [r15 + 0x50], 1
vmovups xmmword [rsi + 0x40], xmm0
vextracti128 xmmword [rsi + 0x50], ymm0, 1
vmovdqu xmm5, xmmword [r15 + 0x60]
vinserti128 ymm0, ymm5, xmmword [r15 + 0x70], 1
vmovups xmmword [rsi + 0x60], xmm0
vextracti128 xmmword [rsi + 0x70], ymm0, 1
mov eax, dword [r15 + 0x40]
mov edx, r12d
nop dword [rax]
lea r8d, [rdx - 1]
mov ecx, edx
and edx, r8d
jne 0x64a7b0
and eax, r8d
sub eax, ecx
add eax, r12d
shl rax, 7
lea rdx, [rdi + rax]
lea rax, [rdi + rax + 0x20]
cmp r15, rax
jae 0x64a7e0
cmp qword [rsp + 0x40], rdx
ja 0x64b380
vmovdqu xmm6, xmmword [rdx]
vmovdqu xmm7, xmmword [r15]
vinserti128 ymm1, ymm6, xmmword [rdx + 0x10], 1
vinserti128 ymm0, ymm7, xmmword [r15 + 0x10], 1
vmovdqu xmm3, xmmword [r15 + 0x20]
vmovdqu xmm5, xmmword [r15 + 0x40]
vpxor ymm0, ymm0, ymm1
vmovdqu xmm6, xmmword [r15 + 0x60]
vmovups xmmword [r15], xmm0
vextracti128 xmmword [r15 + 0x10], ymm0, 1
vmovdqu xmm2, xmmword [rax]
vinserti128 ymm0, ymm3, xmmword [r15 + 0x30], 1
vinserti128 ymm1, ymm2, xmmword [rax + 0x10], 1
vpxor ymm0, ymm0, ymm1
vmovups xmmword [r15 + 0x20], xmm0
vextracti128 xmmword [r15 + 0x30], ymm0, 1
vinserti128 ymm0, ymm5, xmmword [r15 + 0x50], 1
vmovdqu xmm4, xmmword [rax + 0x20]
vinserti128 ymm1, ymm4, xmmword [rax + 0x30], 1
vpxor ymm0, ymm0, ymm1
vinserti128 ymm1, ymm6, xmmword [r15 + 0x70], 1
vmovups xmmword [r15 + 0x40], xmm0
vextracti128 xmmword [r15 + 0x50], ymm0, 1
vmovdqu xmm7, xmmword [rax + 0x40]
vinserti128 ymm0, ymm7, xmmword [rax + 0x50], 1
vpxor ymm0, ymm0, ymm1
vmovups xmmword [r15 + 0x60], xmm0
vextracti128 xmmword [r15 + 0x70], ymm0, 1
cmp rdi, qword [rbp + 0x18]
je 0x64b130
mov rdx, rbp
mov rcx, r15
vzeroupper
call fcn.00649f60
add r12d, 1
sub rsi, 0xffffffffffffff80
cmp dword [rsp + 0x6c], r12d
jne 0x64a730
mov r12, qword [rsp + 0x170]
mov r13, qword [rsp + 0x178]
mov eax, dword [r15]
mov dword [r12], eax
mov eax, dword [r15 + 4]
mov rbx, r13
shl rbx, 5
mov dword [r12 + 0x14], eax
mov eax, dword [r15 + 8]
mov dword [r12 + 0x28], eax
mov eax, dword [r15 + 0xc]
mov dword [r12 + 0x3c], eax
mov eax, dword [r15 + 0x10]
mov dword [r12 + 0x10], eax
mov eax, dword [r15 + 0x14]
mov dword [r12 + 0x24], eax
mov eax, dword [r15 + 0x18]
mov dword [r12 + 0x38], eax
mov eax, dword [r15 + 0x1c]
mov dword [r12 + 0xc], eax
mov eax, dword [r15 + 0x20]
mov dword [r12 + 0x20], eax
mov eax, dword [r15 + 0x24]
mov dword [r12 + 0x34], eax
mov eax, dword [r15 + 0x28]
mov dword [r12 + 8], eax
mov eax, dword [r15 + 0x2c]
mov dword [r12 + 0x1c], eax
mov eax, dword [r15 + 0x30]
mov dword [r12 + 0x30], eax
mov eax, dword [r15 + 0x34]
mov dword [r12 + 4], eax
mov eax, dword [r15 + 0x38]
mov dword [r12 + 0x18], eax
mov eax, dword [r15 + 0x3c]
mov dword [r12 + 0x2c], eax
mov eax, dword [r15 + 0x40]
mov dword [r12 + 0x40], eax
mov eax, dword [r15 + 0x44]
mov dword [r12 + 0x54], eax
mov eax, dword [r15 + 0x48]
mov dword [r12 + 0x68], eax
mov eax, dword [r15 + 0x4c]
mov dword [r12 + 0x7c], eax
mov eax, dword [r15 + 0x50]
mov dword [r12 + 0x50], eax
mov eax, dword [r15 + 0x54]
mov dword [r12 + 0x64], eax
mov eax, dword [r15 + 0x58]
mov dword [r12 + 0x78], eax
mov eax, dword [r15 + 0x5c]
mov dword [r12 + 0x4c], eax
mov eax, dword [r15 + 0x60]
mov dword [r12 + 0x60], eax
mov eax, dword [r15 + 0x64]
mov dword [r12 + 0x74], eax
mov eax, dword [r15 + 0x68]
mov dword [r12 + 0x48], eax
mov eax, dword [r15 + 0x6c]
mov dword [r12 + 0x5c], eax
mov eax, dword [r15 + 0x70]
mov dword [r12 + 0x70], eax
mov eax, dword [r15 + 0x74]
mov dword [r12 + 0x44], eax
mov eax, dword [r15 + 0x78]
mov dword [r12 + 0x58], eax
mov eax, dword [r15 + 0x7c]
mov dword [r12 + 0x6c], eax
lea rax, [r12 + 0x3f]
sub rax, r15
mov qword [rsp + 0x80], rax
cmp rax, 0x7e
jbe 0x64b3a0
mov rdx, r13
vmovdqu ymm5, ymmword [0x006eee20]
vmovdqu ymm4, ymmword [0x006eee40]
xor eax, eax
vmovdqu ymm3, ymmword [0x006eee60]
vmovdqu ymm2, ymmword [0x006eee80]
shl rdx, 7
nop word [rax + rax]
vmovdqu xmm6, xmmword [r12 + rax]
vmovdqu xmm7, xmmword [r12 + rax + 0x20]
vinserti128 ymm1, ymm6, xmmword [r12 + rax + 0x10], 1
vinserti128 ymm0, ymm7, xmmword [r12 + rax + 0x30], 1
vpshufb ymm6, ymm1, ymm5
vpshufb ymm7, ymm0, ymm4
vpermq ymm9, ymm6, 0x4e
vpermq ymm8, ymm7, 0x4e
vpshufb ymm6, ymm1, ymm3
vpshufb ymm7, ymm0, ymm2
vpor ymm6, ymm6, ymm9
vpor ymm7, ymm7, ymm8
vpor ymm6, ymm6, ymm7
vpshufb ymm7, ymm0, ymm5
vpshufb ymm0, ymm0, ymm3
vmovups xmmword [r15 + rax], xmm6
vextracti128 xmmword [r15 + rax + 0x10], ymm6, 1
vpermq ymm7, ymm7, 0x4e
vpshufb ymm6, ymm1, ymm4
vpermq ymm6, ymm6, 0x4e
vpshufb ymm1, ymm1, ymm2
vpor ymm0, ymm0, ymm7
vpor ymm1, ymm1, ymm6
vpor ymm0, ymm0, ymm1
vmovups xmmword [r15 + rax + 0x20], xmm0
vextracti128 xmmword [r15 + rax + 0x30], ymm0, 1
add rax, 0x40
cmp rdx, rax
jne 0x64aa30
cmp dword [rbp], 5
je 0x64ab66
mov rsi, r13
lea rdi, [r15 + 0x80]
shl rsi, 7
add rsi, r15
nop dword [rax]
vmovdqu xmm2, xmmword [rdi - 0x80]
vmovdqu xmm3, xmmword [rdi - 0x60]
mov rdx, rbp
mov rcx, rdi
vinserti128 ymm0, ymm2, xmmword [rdi - 0x70], 1
vmovdqu xmm4, xmmword [rdi - 0x40]
vmovdqu xmm5, xmmword [rdi - 0x20]
vmovups xmmword [rdi], xmm0
vextracti128 xmmword [rdi + 0x10], ymm0, 1
vinserti128 ymm0, ymm3, xmmword [rdi - 0x50], 1
vmovups xmmword [rdi + 0x20], xmm0
vextracti128 xmmword [rdi + 0x30], ymm0, 1
vinserti128 ymm0, ymm4, xmmword [rdi - 0x30], 1
vmovups xmmword [rdi + 0x40], xmm0
vextracti128 xmmword [rdi + 0x50], ymm0, 1
vinserti128 ymm0, ymm5, xmmword [rdi - 0x10], 1
vmovups xmmword [rdi + 0x60], xmm0
vextracti128 xmmword [rdi + 0x70], ymm0, 1
vzeroupper
sub rdi, 0xffffffffffffff80
call fcn.00649f60
cmp rsi, rdi
jne 0x64aaf0
mov eax, dword [rsp + 0x180]
test eax, eax
je 0x64ad13
mov rax, r13
xor r14d, r14d
mov qword [rsp + 0x170], r12
mov rsi, qword [rsp + 0x188]
shl rax, 7
mov qword [rsp + 0x198], rbp
mov ebp, r14d
mov r14, qword [rsp + 0x198]
mov qword [rsp + 0x48], rax
lea rax, [r15 + rax - 0x40]
mov qword [rsp + 0x88], rax
lea rax, [rbx*4]
mov qword [rsp + 0x70], rax
lea rax, [r15 + 0x20]
mov qword [rsp + 0x40], rax
lea rax, [r15 + 0x80]
mov qword [rsp + 0x90], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x98], rax
nop dword [rax]
lea rax, [rsi + 0x20]
cmp r15, rax
mov eax, 0
jae 0x64ac10
cmp qword [rsp + 0x40], rsi
ja 0x64ae90
nop dword [rax]
vmovdqu xmm2, xmmword [r15 + rax]
vinserti128 ymm0, ymm2, xmmword [r15 + rax + 0x10], 1
vmovups xmmword [rsi + rax], xmm0
vextracti128 xmmword [rsi + rax + 0x10], ymm0, 1
add rax, 0x20
cmp rax, qword [rsp + 0x70]
jne 0x64ac10
cmp ebp, 1
jbe 0x64acd0
mov rax, qword [rsp + 0x88]
mov edx, ebp
mov eax, dword [rax]
nop dword [rax + rax]
lea ecx, [rdx - 1]
mov r8d, edx
and edx, ecx
jne 0x64ac50
and eax, ecx
mov rdi, qword [rsp + 0x188]
sub eax, r8d
lea edx, [rax + rbp]
mov rax, qword [rsp + 0x188]
imul rdx, r13
shl rdx, 7
add rax, rdx
lea rdx, [rdi + rdx + 0x20]
cmp r15, rdx
jae 0x64ac92
cmp rax, qword [rsp + 0x40]
jb 0x64aeb0
xor edx, edx
nop dword [rax]
vmovdqu xmm4, xmmword [rax + rdx]
vmovdqu xmm3, xmmword [r15 + rdx]
vinserti128 ymm0, ymm4, xmmword [rax + rdx + 0x10], 1
vinserti128 ymm1, ymm3, xmmword [r15 + rdx + 0x10], 1
vpxor ymm0, ymm0, ymm1
vmovups xmmword [r15 + rdx], xmm0
vextracti128 xmmword [r15 + rdx + 0x10], ymm0, 1
add rdx, 0x20
cmp rdx, qword [rsp + 0x70]
jne 0x64ac98
mov rax, qword [r14 + 0x18]
cmp qword [rsp + 0x188], rax
je 0x64aee8
mov r8, r13
mov rdx, r14
mov rcx, r15
vzeroupper
call fcn.00649730
add ebp, 1
add rsi, qword [rsp + 0x48]
cmp dword [rsp + 0x180], ebp
jne 0x64abf0
mov r12, qword [rsp + 0x170]
mov rbp, r14
cmp qword [rsp + 0x80], 0x7e
jbe 0x64b428
mov rdx, r13
vmovdqu ymm5, ymmword [0x006eee20]
vmovdqu ymm4, ymmword [0x006eee40]
xor eax, eax
vmovdqu ymm3, ymmword [0x006eee60]
vmovdqu ymm2, ymmword [0x006eee80]
shl rdx, 7
nop dword [rax + rax]
vmovdqu xmm7, xmmword [r15 + rax]
vmovdqu xmm6, xmmword [r15 + rax + 0x20]
vinserti128 ymm1, ymm7, xmmword [r15 + rax + 0x10], 1
vinserti128 ymm0, ymm6, xmmword [r15 + rax + 0x30], 1
vpshufb ymm6, ymm1, ymm4
vpshufb ymm7, ymm0, ymm5
vpermq ymm9, ymm6, 0x4e
vpermq ymm8, ymm7, 0x4e
vpshufb ymm6, ymm1, ymm3
vpshufb ymm7, ymm0, ymm2
vpor ymm6, ymm6, ymm9
vpor ymm7, ymm7, ymm8
vpor ymm6, ymm6, ymm7
vpshufb ymm7, ymm0, ymm4
vpshufb ymm0, ymm0, ymm3
vmovups xmmword [r12 + rax], xmm6
vextracti128 xmmword [r12 + rax + 0x10], ymm6, 1
vpermq ymm7, ymm7, 0x4e
vpshufb ymm6, ymm1, ymm5
vpermq ymm6, ymm6, 0x4e
vpshufb ymm1, ymm1, ymm2
vpor ymm0, ymm0, ymm7
vpor ymm1, ymm1, ymm6
vpor ymm0, ymm0, ymm1
vmovups xmmword [r12 + rax + 0x20], xmm0
vextracti128 xmmword [r12 + rax + 0x30], ymm0, 1
add rax, 0x40
cmp rdx, rax
jne 0x64ad50
mov r9d, dword [rsp + 0x78]
mov rdx, r13
mov rcx, r12
mov qword [rsp + 0x30], rbp
mov rax, qword [rsp + 0x188]
mov r8d, dword [rsp + 0x180]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
vzeroupper
call fcn.00649a80
mov qword [rsp + 0x30], rbp
mov rdx, r13
mov rcx, r12
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x28], r15
mov r9d, dword [rsp + 0x7c]
mov r8d, dword [rsp + 0x180]
mov qword [rsp + 0x20], rax
call fcn.00649a80
nop
vmovups xmm6, xmmword [rsp + 0xe0]
vmovups xmm7, xmmword [rsp + 0xf0]
vmovups xmm8, xmmword [rsp + 0x100]
vmovups xmm9, xmmword [rsp + 0x110]
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, dword [r15 + rax]
mov dword [rsi + rax], edx
add rax, 4
cmp qword [rsp + 0x48], rax
jne 0x64ae90
jmp 0x64ac36
mov rdi, qword [rsp + 0x48]
mov rdx, r15
lea r8, [rax + rdi]
nop dword [rax]
add rax, 4
add rdx, 4
mov ecx, dword [rax - 4]
xor dword [rdx - 4], ecx
cmp rax, r8
jne 0x64aec0
mov rax, qword [r14 + 0x18]
cmp qword [rsp + 0x188], rax
jne 0x64ace2
nop dword [rax]
mov eax, dword [r15 + 0x40]
mov r12d, dword [r14 + 4]
mov rbx, r15
mov edi, dword [r15 + 0x44]
mov r11d, dword [r15 + 0x4c]
mov r10d, dword [r15 + 0x54]
mov r9d, dword [r15 + 0x5c]
mov dword [rsp + 0x50], eax
mov eax, dword [r15 + 0x48]
mov r8d, dword [r15 + 0x64]
mov ecx, dword [r15 + 0x6c]
mov edx, dword [r15 + 0x74]
mov dword [rsp + 0x54], eax
mov eax, dword [r15 + 0x50]
mov dword [rsp + 0x58], eax
mov eax, dword [r15 + 0x58]
mov dword [rsp + 0x5c], eax
mov eax, dword [r15 + 0x60]
mov dword [rsp + 0x60], eax
mov eax, dword [r15 + 0x68]
mov dword [rsp + 0x64], eax
mov eax, dword [r15 + 0x70]
mov dword [rsp + 0x68], eax
mov eax, dword [r15 + 0x78]
mov dword [rsp + 0x6c], eax
mov eax, dword [r15 + 0x7c]
vmovd xmm6, dword [rsp + 0x6c]
vmovd xmm7, dword [rsp + 0x68]
vmovdqu xmm5, xmmword [rbx + 0x20]
vmovd xmm4, dword [rsp + 0x64]
vinserti128 ymm1, ymm5, xmmword [rbx + 0x30], 1
vpinsrd xmm3, xmm6, eax, 1
vmovd xmm5, dword [rsp + 0x60]
vpinsrd xmm2, xmm7, edx, 1
vmovd xmm6, dword [rsp + 0x58]
vpunpcklqdq xmm2, xmm2, xmm3
vmovd xmm3, dword [rsp + 0x5c]
mov edx, r12d
vpinsrd xmm4, xmm4, ecx, 1
vpinsrd xmm0, xmm5, r8d, 1
vmovd xmm7, dword [rsp + 0x54]
mov rcx, qword [rsp + 0x98]
vpunpcklqdq xmm0, xmm0, xmm4
vpinsrd xmm4, xmm3, r9d, 1
vpinsrd xmm3, xmm6, r10d, 1
vmovd xmm6, dword [rsp + 0x50]
vinserti128 ymm0, ymm0, xmm2, 1
vpinsrd xmm5, xmm7, r11d, 1
vmovdqu xmm2, xmmword [rbx]
vpunpcklqdq xmm3, xmm3, xmm4
vpxor ymm0, ymm0, ymm1
vpinsrd xmm1, xmm6, edi, 1
vinserti128 ymm2, ymm2, xmmword [rbx + 0x10], 1
vmovups xmmword [rsp + 0xc0], xmm0
vpunpcklqdq xmm1, xmm1, xmm5
vextracti128 xmmword [rsp + 0xd0], ymm0, 1
vinserti128 ymm1, ymm1, xmm3, 1
vpxor ymm1, ymm1, ymm2
vmovups xmmword [rsp + 0xa0], xmm1
vextracti128 xmmword [rsp + 0xb0], ymm1, 1
vzeroupper
add rbx, 0x40
call fcn.00649000
mov eax, dword [rsp + 0xa0]
vmovdqu xmm2, xmmword [rsp + 0xc0]
vmovdqu xmm3, xmmword [rsp + 0xa0]
mov edi, dword [rsp + 0xa4]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0xa8]
mov r11d, dword [rsp + 0xac]
mov r10d, dword [rsp + 0xb4]
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0xb0]
mov r9d, dword [rsp + 0xbc]
mov r8d, dword [rsp + 0xc4]
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0xb8]
mov ecx, dword [rsp + 0xcc]
mov edx, dword [rsp + 0xd4]
vinserti128 ymm0, ymm2, xmmword [rsp + 0xd0], 1
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0xc0]
vinserti128 ymm1, ymm3, xmmword [rsp + 0xb0], 1
vmovups xmmword [rbx - 0x20], xmm0
vextracti128 xmmword [rbx - 0x10], ymm0, 1
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0xc8]
vextracti128 xmmword [rbx - 0x30], ymm1, 1
vmovups xmmword [rbx - 0x40], xmm1
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0xd0]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0xdc]
cmp rbx, qword [rsp + 0x90]
jne 0x64af4f
jmp 0x64acf3
xor eax, eax
nop word [rax + rax]
mov edx, dword [r15 + rax]
mov dword [rsi + rax], edx
add rax, 4
cmp rax, 0x80
jne 0x64b118
jmp 0x64a48a
mov eax, dword [r15 + 0x40]
mov r14d, dword [rbp + 4]
mov rbx, r15
mov r13d, dword [r15 + 0x44]
mov r11d, dword [r15 + 0x4c]
mov r10d, dword [r15 + 0x54]
mov r9d, dword [r15 + 0x5c]
mov dword [rsp + 0x68], eax
mov eax, dword [r15 + 0x48]
mov r8d, dword [r15 + 0x64]
mov ecx, dword [r15 + 0x6c]
mov edx, dword [r15 + 0x74]
mov dword [rsp + 0x64], eax
mov eax, dword [r15 + 0x50]
mov dword [rsp + 0x60], eax
mov eax, dword [r15 + 0x58]
mov dword [rsp + 0x5c], eax
mov eax, dword [r15 + 0x60]
mov dword [rsp + 0x58], eax
mov eax, dword [r15 + 0x68]
mov dword [rsp + 0x54], eax
mov eax, dword [r15 + 0x70]
mov dword [rsp + 0x50], eax
mov eax, dword [r15 + 0x78]
mov dword [rsp + 0x48], eax
mov eax, dword [r15 + 0x7c]
vmovd xmm4, dword [rsp + 0x50]
vmovd xmm5, dword [rsp + 0x54]
vmovd xmm6, dword [rsp + 0x58]
vmovd xmm3, dword [rsp + 0x48]
vmovdqu xmm2, xmmword [rbx + 0x20]
vinserti128 ymm1, ymm2, xmmword [rbx + 0x30], 1
vpinsrd xmm2, xmm4, edx, 1
vpinsrd xmm4, xmm5, ecx, 1
vpinsrd xmm3, xmm3, eax, 1
vpinsrd xmm0, xmm6, r8d, 1
vmovdqu xmm7, xmmword [rbx]
vmovd xmm5, dword [rsp + 0x60]
vpunpcklqdq xmm2, xmm2, xmm3
vpunpcklqdq xmm0, xmm0, xmm4
vmovd xmm3, dword [rsp + 0x5c]
vmovd xmm6, dword [rsp + 0x64]
vinserti128 ymm0, ymm0, xmm2, 1
vinserti128 ymm2, ymm7, xmmword [rbx + 0x10], 1
vmovd xmm7, dword [rsp + 0x68]
mov edx, r14d
vpxor ymm0, ymm0, ymm1
vpinsrd xmm4, xmm3, r9d, 1
vpinsrd xmm3, xmm5, r10d, 1
mov rcx, qword [rsp + 0x80]
vpinsrd xmm5, xmm6, r11d, 1
vpinsrd xmm1, xmm7, r13d, 1
vpunpcklqdq xmm3, xmm3, xmm4
vmovups xmmword [rsp + 0xc0], xmm0
vextracti128 xmmword [rsp + 0xd0], ymm0, 1
vpunpcklqdq xmm1, xmm1, xmm5
vinserti128 ymm1, ymm1, xmm3, 1
vpxor ymm1, ymm1, ymm2
vmovups xmmword [rsp + 0xa0], xmm1
vextracti128 xmmword [rsp + 0xb0], ymm1, 1
vzeroupper
add rbx, 0x40
call fcn.00649000
mov eax, dword [rsp + 0xa0]
vmovdqu xmm2, xmmword [rsp + 0xc0]
vmovdqu xmm4, xmmword [rsp + 0xa0]
mov r13d, dword [rsp + 0xa4]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0xa8]
mov r11d, dword [rsp + 0xac]
mov r10d, dword [rsp + 0xb4]
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0xb0]
mov r9d, dword [rsp + 0xbc]
mov r8d, dword [rsp + 0xc4]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0xb8]
mov ecx, dword [rsp + 0xcc]
mov edx, dword [rsp + 0xd4]
vinserti128 ymm0, ymm2, xmmword [rsp + 0xd0], 1
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0xc0]
vinserti128 ymm1, ymm4, xmmword [rsp + 0xb0], 1
vmovups xmmword [rbx - 0x20], xmm0
vextracti128 xmmword [rbx - 0x10], ymm0, 1
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0xc8]
vextracti128 xmmword [rbx - 0x30], ymm1, 1
vmovups xmmword [rbx - 0x40], xmm1
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0xd0]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0xdc]
cmp rbx, qword [rsp + 0x70]
jne 0x64b197
jmp 0x64a89c
xor eax, eax
nop word [rax + rax]
mov edx, dword [r15 + rax]
mov dword [rsi + rax], edx
add rax, 4
cmp rax, 0x80
jne 0x64b368
jmp 0x64a7a6
xor eax, eax
nop word [rax + rax]
mov ecx, dword [rdx + rax]
xor dword [r15 + rax], ecx
add rax, 4
cmp rax, 0x80
jne 0x64b388
jmp 0x64a884
mov r8, r13
mov rax, r12
mov rdx, r15
shl r8, 7
add r8, r12
mov ecx, dword [rax]
add rax, 0x40
add rdx, 0x40
mov dword [rdx - 0x40], ecx
mov ecx, dword [rax - 0x2c]
mov dword [rdx - 0x3c], ecx
mov ecx, dword [rax - 0x18]
mov dword [rdx - 0x38], ecx
mov ecx, dword [rax - 4]
mov dword [rdx - 0x34], ecx
mov ecx, dword [rax - 0x30]
mov dword [rdx - 0x30], ecx
mov ecx, dword [rax - 0x1c]
mov dword [rdx - 0x2c], ecx
mov ecx, dword [rax - 8]
mov dword [rdx - 0x28], ecx
mov ecx, dword [rax - 0x34]
mov dword [rdx - 0x24], ecx
mov ecx, dword [rax - 0x20]
mov dword [rdx - 0x20], ecx
mov ecx, dword [rax - 0xc]
mov dword [rdx - 0x1c], ecx
mov ecx, dword [rax - 0x38]
mov dword [rdx - 0x18], ecx
mov ecx, dword [rax - 0x24]
mov dword [rdx - 0x14], ecx
mov ecx, dword [rax - 0x10]
mov dword [rdx - 0x10], ecx
mov ecx, dword [rax - 0x3c]
mov dword [rdx - 0xc], ecx
mov ecx, dword [rax - 0x28]
mov dword [rdx - 8], ecx
mov ecx, dword [rax - 0x14]
mov dword [rdx - 4], ecx
cmp rax, r8
jne 0x64b3b0
jmp 0x64aad1
mov r8, r13
mov rax, r15
mov rdx, r12
shl r8, 7
add r8, r15
nop dword [rax + rax]
mov ecx, dword [rax]
add rax, 0x40
add rdx, 0x40
mov dword [rdx - 0x40], ecx
mov ecx, dword [rax - 0x3c]
mov dword [rdx - 0x2c], ecx
mov ecx, dword [rax - 0x38]
mov dword [rdx - 0x18], ecx
mov ecx, dword [rax - 0x34]
mov dword [rdx - 4], ecx
mov ecx, dword [rax - 0x30]
mov dword [rdx - 0x30], ecx
mov ecx, dword [rax - 0x2c]
mov dword [rdx - 0x1c], ecx
mov ecx, dword [rax - 0x28]
mov dword [rdx - 8], ecx
mov ecx, dword [rax - 0x24]
mov dword [rdx - 0x34], ecx
mov ecx, dword [rax - 0x20]
mov dword [rdx - 0x20], ecx
mov ecx, dword [rax - 0x1c]
mov dword [rdx - 0xc], ecx
mov ecx, dword [rax - 0x18]
mov dword [rdx - 0x38], ecx
mov ecx, dword [rax - 0x14]
mov dword [rdx - 0x24], ecx
mov ecx, dword [rax - 0x10]
mov dword [rdx - 0x10], ecx
mov ecx, dword [rax - 0xc]
mov dword [rdx - 0x3c], ecx
mov ecx, dword [rax - 8]
mov dword [rdx - 0x28], ecx
mov ecx, dword [rax - 4]
mov dword [rdx - 0x14], ecx
cmp rax, r8
jne 0x64b440
jmp 0x64adf1