Function at 0x140051810
Capabilities:
Encrypt data using curve25519

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
cmp byte [0x1400fdd38], 0
mov rbx, rdx
mov rdi, rcx
jne 0x1400484ee
call fcn.140053860
cmp byte [0x1400fdd39], 0
lea r8, reloc.OLEAUT32.dll_VariantCopy
mov rdx, rbx
mov rcx, rdi
je 0x140048513
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp 0x140051810
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp 0x140048530
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x198]
sub rsp, 0x270
movaps xmmword [rax - 0x38], xmm6
mov rax, qword [0x1400ea180]
xor rax, rsp
mov qword [rbp + 0x158], rax
lea rax, [rbp + 0x118]
mov qword [rbp + 0xe8], rcx
mov qword [rbp + 0x150], rax
xorps xmm0, xmm0
movzx eax, byte [rdx + 1]
mov rdi, r8
mov byte [rbp + 0x119], al
mov r8d, 1
movzx eax, byte [rdx + 2]
xorps xmm1, xmm1
movzx ecx, byte [rdx]
mov byte [rbp + 0x11a], al
and cl, 0xf8
movzx eax, byte [rdx + 3]
mov byte [rbp + 0x11b], al
movzx eax, byte [rdx + 4]
mov byte [rbp + 0x11c], al
movzx eax, byte [rdx + 5]
mov byte [rbp + 0x11d], al
movzx eax, byte [rdx + 6]
mov byte [rbp + 0x11e], al
movzx eax, byte [rdx + 7]
mov byte [rbp + 0x11f], al
movzx eax, byte [rdx + 8]
mov byte [rbp + 0x120], al
movzx eax, byte [rdx + 9]
mov byte [rbp + 0x121], al
movzx eax, byte [rdx + 0xa]
mov byte [rbp + 0x122], al
movzx eax, byte [rdx + 0xb]
mov byte [rbp + 0x123], al
movzx eax, byte [rdx + 0xc]
mov byte [rbp + 0x124], al
movzx eax, byte [rdx + 0xd]
mov byte [rbp + 0x125], al
movzx eax, byte [rdx + 0xe]
mov byte [rbp + 0x126], al
movzx eax, byte [rdx + 0xf]
mov byte [rbp + 0x127], al
movzx eax, byte [rdx + 0x10]
mov byte [rbp + 0x128], al
movzx eax, byte [rdx + 0x11]
mov byte [rbp + 0x129], al
movzx eax, byte [rdx + 0x12]
mov byte [rbp + 0x12a], al
movzx eax, byte [rdx + 0x13]
mov byte [rbp + 0x12b], al
movzx eax, byte [rdx + 0x14]
mov byte [rbp + 0x12c], al
movzx eax, byte [rdx + 0x15]
mov byte [rbp + 0x12d], al
movzx eax, byte [rdx + 0x16]
mov byte [rbp + 0x12e], al
movzx eax, byte [rdx + 0x17]
mov byte [rbp + 0x12f], al
movzx eax, byte [rdx + 0x18]
mov byte [rbp + 0x130], al
movzx eax, byte [rdx + 0x19]
mov byte [rbp + 0x131], al
movzx eax, byte [rdx + 0x1a]
mov byte [rbp + 0x132], al
movzx eax, byte [rdx + 0x1b]
mov byte [rbp + 0x133], al
movzx eax, byte [rdx + 0x1c]
mov byte [rbp + 0x134], al
movzx eax, byte [rdx + 0x1d]
mov byte [rbp + 0x135], al
movzx eax, byte [rdx + 0x1e]
mov byte [rbp + 0x136], al
movzx eax, byte [rdx + 0x1f]
and al, 0x7f
mov byte [rbp + 0x118], cl
or al, 0x40
mov qword [rbp + 0x140], 0xffffffffffffffff
mov byte [rbp + 0x137], al
xor ecx, ecx
mov qword [rbp + 0x148], 0x20
mov byte [rbp + 0x139], 1
mov qword [rbp - 0x10], r8
movups xmmword [rbp - 8], xmm0
movups xmmword [rbp + 8], xmm0
xor r9d, r9d
mov qword [rbp - 0x30], rcx
mov esi, r8d
movups xmmword [rbp - 0x50], xmm1
movups xmmword [rbp - 0x40], xmm1
movups xmmword [rsp + 0x28], xmm0
movups xmmword [rsp + 0x38], xmm0
test rdi, rdi
je 0x140048724
mov r9, qword [rdi]
lea rax, [rdi + 8]
xor ebx, ebx
test rax, rax
je 0x140048732
mov rbx, qword [rax]
mov rdx, rcx
add rax, 8
je 0x14004873e
mov rdx, qword [rax]
xor r10d, r10d
add rax, 8
je 0x14004874a
mov r10, qword [rax]
movdqa xmm6, xmmword [0x1400c7a50]
mov rax, rbx
mov r15, qword [rsp + 0x38]
movabs r14, 0x7ffffffffffff
mov r12, qword [rsp + 0x30]
mov rdi, r9
mov r13, qword [rsp + 0x28]
and rdi, r14
shl rax, 0xd
mov r11, rdx
shr rbx, 0x26
shr r9, 0x33
or r9, rax
shl r11, 0x1a
mov rax, qword [rbp + 0x10]
or r11, rbx
and r9, r14
mov qword [rsp + 0x50], rax
mov rax, qword [rbp + 8]
and r11, r14
mov rbx, r10
shr rdx, 0x19
shl rbx, 0x27
or rbx, rdx
mov qword [rsp + 0x60], rax
mov rax, qword [rbp]
and rbx, r14
mov rdx, qword [rbp - 0x50]
shr r10, 0xc
and r10, r14
mov qword [rsp + 0x58], rax
mov rax, qword [rbp - 8]
mov r14, qword [rsp + 0x40]
mov qword [rbp - 0x20], rax
mov qword [rbp + 0x50], rdi
mov qword [rbp + 0x58], r9
mov qword [rbp + 0x60], r11
mov qword [rbp + 0x68], rbx
mov qword [rbp + 0x70], r10
mov qword [rbp - 0x58], r8
mov dword [rbp - 0x28], 0xfd
mov qword [rbp + 0x20], rdi
mov qword [rbp + 0x28], r9
mov qword [rbp + 0x30], r11
mov qword [rbp + 0x38], rbx
mov qword [rbp + 0x40], r10
nop word [rax + rax]
lea rax, [rdi + rsi]
sub rdi, rsi
mov qword [rsp + 0x70], rax
lea rax, [r9 + r13]
mov qword [rsp + 0x78], rax
lea rax, [r12 + r11]
mov qword [rbp - 0x80], rax
lea rax, [r15 + rbx]
mov qword [rbp - 0x78], rax
movabs rbx, 0x3fffffffffff68
lea rax, [r14 + r10]
add rdi, rbx
mov qword [rbp - 0x70], rax
xor eax, eax
mov qword [rsp + 0x20], rdi
movdqu xmm0, xmmword [rsp + rax + 0x28]
movdqa xmm1, xmm6
psubq xmm1, xmm0
movdqu xmm0, xmmword [rbp + rax + 0x28]
paddq xmm1, xmm0
movdqu xmmword [rsp + rax + 0x28], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x140048851
lea rax, [rdx + r8]
sub r8, rdx
mov qword [rbp + 0xb0], rax
add r8, rbx
mov rax, qword [rbp - 0x48]
add rax, qword [rbp - 0x20]
mov qword [rbp + 0xb8], rax
mov rax, qword [rbp - 0x40]
add rax, qword [rsp + 0x58]
mov qword [rbp + 0xc0], rax
mov rax, qword [rbp - 0x38]
add rax, qword [rsp + 0x60]
mov qword [rbp + 0xc8], rax
mov rax, qword [rsp + 0x50]
add rax, rcx
mov qword [rbp - 0x50], r8
mov qword [rbp + 0xd0], rax
xor eax, eax
nop
movdqu xmm0, xmmword [rbp + rax - 0x48]
movdqa xmm1, xmm6
psubq xmm1, xmm0
movdqu xmm0, xmmword [rbp + rax - 8]
paddq xmm1, xmm0
movdqu xmmword [rbp + rax - 0x48], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x1400488d0
lea r8, [rsp + 0x20]
lea rdx, [rbp + 0xb0]
lea rcx, [rbp - 0x10]
call fcn.140048150
lea r8, [rbp - 0x50]
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x50]
call fcn.140048150
mov rdx, qword [rbp - 0x50]
mov rdi, qword [rbp - 0x10]
lea rax, [rdx + rdi]
sub rdi, rdx
mov qword [rsp + 0x48], rax
add rdi, rbx
mov rax, qword [rbp - 8]
add rax, qword [rbp - 0x48]
mov qword [rsp + 0x60], rax
mov rax, qword [rbp]
add rax, qword [rbp - 0x40]
mov qword [rsp + 0x58], rax
mov rax, qword [rbp + 8]
add rax, qword [rbp - 0x38]
mov qword [rsp + 0x50], rax
mov rax, qword [rbp + 0x10]
add rax, qword [rbp - 0x30]
mov qword [rsp + 0x68], rax
xor eax, eax
mov qword [rbp - 0x50], rdi
movdqu xmm0, xmmword [rbp + rax - 0x48]
movdqa xmm1, xmm6
psubq xmm1, xmm0
movdqu xmm0, xmmword [rbp + rax - 8]
paddq xmm1, xmm0
movdqu xmmword [rbp + rax - 0x48], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x140048970
mov r10, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x50]
mov rbx, qword [rbp - 0x38]
mov r13, qword [rbp - 0x40]
mov r14, qword [rbp - 0x30]
lea rax, [r10 + r10]
mov qword [rbp + 0xe0], rax
lea r15, [rcx + rcx]
imul r9, r13, 0x26
imul rsi, r14, 0x13
mov rax, rcx
mov qword [rbp + 0x48], r15
mul rcx
lea r11, [rsi + rsi]
mov rcx, rax
mov r12, rdx
mov rax, r10
mul r11
mov r8, rdx
lea rdi, [rax + rcx]
mov rax, rbx
cmp rdi, rcx
adc r8, 0
mul r9
add rax, rdi
cmp rax, rdi
mov qword [rbp - 0x20], rax
mov rax, r10
adc rdx, r8
add r12, rdx
mul r15
mov qword [rbp - 0x18], r12
mov rcx, rax
mov r9, rdx
mov rax, r13
mul r11
mov r8, rdx
lea rdi, [rax + rcx]
cmp rdi, rcx
adc r8, 0
imul rax, rbx, 0x13
mul rbx
lea r12, [rax + rdi]
mov rax, r13
cmp r12, rdi
adc rdx, r8
add r9, rdx
mul r15
mov qword [rbp - 0x60], r9
mov rcx, rax
mov r13, rdx
mov rax, r10
mul r10
mov r8, rdx
lea rdi, [rax + rcx]
mov rax, rbx
cmp rdi, rcx
adc r8, 0
mul r11
lea r9, [rax + rdi]
mov rax, rbx
cmp r9, rdi
adc rdx, r8
add r13, rdx
mul r15
mov rcx, rax
mov r15, rdx
mov rax, qword [rbp - 0x40]
mul qword [rbp + 0xe0]
mov r8, rdx
lea rdi, [rax + rcx]
mov rax, rsi
cmp rdi, rcx
adc r8, 0
mul r14
lea r11, [rax + rdi]
mov rax, r14
cmp r11, rdi
adc rdx, r8
add r15, rdx
mul qword [rbp + 0x48]
mov rdi, qword [rbp - 0x18]
mov rcx, rax
mov rsi, qword [rbp - 0x20]
mov r14, rdx
mov rax, rbx
mul qword [rbp + 0xe0]
mov rbx, rdx
lea r8, [rax + rcx]
mov rax, qword [rbp - 0x40]
cmp r8, rcx
adc rbx, 0
mul rax
shrd rsi, rdi, 0x33
mov rdi, qword [rbp - 0x60]
lea rcx, [rax + r8]
add rsi, r12
cmp rsi, r12
mov r10, rsi
adc rdi, 0
shrd r10, rdi, 0x33
add r10, r9
cmp r10, r9
mov r9, r10
adc r13, 0
shrd r9, r13, 0x33
add r9, r11
cmp r9, r11
mov rdi, r9
adc r15, 0
shrd rdi, r15, 0x33
add rdi, rcx
cmp rcx, r8
mov rax, rdi
adc rdx, 0
cmp rdi, rcx
adc rdx, r14
mov r14, qword [rsp + 0x60]
imul r12, qword [rsp + 0x68], 0x13
add rdx, rbx
mov rbx, qword [rsp + 0x58]
lea r11, [r14 + r14]
shrd rax, rdx, 0x33
movabs rdx, 0x7ffffffffffff
imul rcx, rax, 0x13
mov rax, qword [rbp - 0x20]
and r9, rdx
and rax, rdx
mov qword [rbp - 0x38], r9
add rcx, rax
and rdi, rdx
and rsi, rdx
mov qword [rbp - 0x30], rdi
and r10, rdx
mov rax, rcx
and rax, rdx
shr rcx, 0x33
add rcx, rsi
mov qword [rbp - 0x50], rax
mov rsi, qword [rsp + 0x50]
mov qword [rbp - 0x48], rcx
mov rcx, qword [rsp + 0x48]
imul r9, rbx, 0x26
mov rax, rcx
mov qword [rbp - 0x40], r10
mul rcx
lea r13, [rcx + rcx]
mov rcx, rax
lea r10, [r12 + r12]
mov rdi, rdx
mov rax, r14
mul r10
lea r8, [rcx + rax]
mov rax, rsi
cmp r8, rcx
adc rdi, 0
lea rcx, [rdi + rdx]
mul r9
mov r9, rdx
lea rdx, [r8 + rax]
mov qword [rsp + 0x48], rdx
cmp rdx, r8
adc r9, rcx
mov rax, r14
mul r13
mov rcx, rax
mov r15, rdx
mov rax, rbx
mul r10
lea r8, [rcx + rax]
cmp r8, rcx
adc r15, 0
add r15, rdx
imul rax, rsi, 0x13
mul rsi
lea r14, [r8 + rax]
mov rax, rbx
cmp r14, r8
adc r15, rdx
mul r13
mov rcx, rax
mov rsi, rdx
mov rax, qword [rsp + 0x60]
mul rax
lea r8, [rcx + rax]
mov rax, qword [rsp + 0x50]
cmp r8, rcx
adc rsi, 0
add rsi, rdx
mul r10
lea rbx, [r8 + rax]
mov rax, qword [rsp + 0x50]
cmp rbx, r8
adc rsi, rdx
mul r13
mov rcx, rax
mov rdi, rdx
mov rax, qword [rsp + 0x58]
mul r11
lea r8, [rcx + rax]
mov rax, r12
mov r12, qword [rsp + 0x48]
cmp r8, rcx
adc rdi, 0
lea r11, [rdi + rdx]
mul qword [rsp + 0x68]
lea r10, [r8 + rax]
mov rax, qword [rsp + 0x68]
cmp r10, r8
mov r8, qword [rsp + 0x60]
adc r11, rdx
mul r13
mov rcx, rax
mov rdi, rdx
mov rax, qword [rsp + 0x50]
lea rdx, [r8 + r8]
mul rdx
lea r8, [rcx + rax]
mov rax, qword [rsp + 0x58]
cmp r8, rcx
adc rdi, 0
add rdi, rdx
mul rax
lea rcx, [r8 + rax]
mov rax, r12
shrd rax, r9, 0x33
lea r9, [rax + r14]
cmp r9, r14
mov r14, r9
adc r15, 0
shrd r14, r15, 0x33
add r14, rbx
cmp r14, rbx
mov rbx, r14
adc rsi, 0
shrd rbx, rsi, 0x33
add rbx, r10
cmp rbx, r10
mov r10, rbx
adc r11, 0
shrd r10, r11, 0x33
add r10, rcx
cmp r10, rcx
adc rdi, 0
mov rax, r10
cmp rcx, r8
lea r8, [rbp + 0x50]
adc rdi, rdx
movabs rdx, 0x7ffffffffffff
shrd rax, rdi, 0x33
and r12, rdx
and r9, rdx
imul rcx, rax, 0x13
and r14, rdx
and rbx, rdx
add rcx, r12
mov qword [rsp + 0x58], r14
mov rax, rcx
mov qword [rsp + 0x60], rbx
shr rcx, 0x33
and rax, rdx
add rcx, r9
mov qword [rbp + 0x48], rax
and r10, rdx
mov qword [rbp - 0x20], rcx
lea rcx, [rbp - 0x50]
mov qword [rsp + 0x50], r10
lea rdx, [rbp - 0x50]
call fcn.140048150
imul rbx, qword [rbp - 0x70], 0x13
mov r10, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
mov rsi, qword [rbp - 0x78]
mov r15, qword [rbp - 0x80]
imul r9, r15, 0x26
lea r14, [rcx + rcx]
lea r11, [rbx + rbx]
mov qword [rbp - 0x60], r14
lea rax, [r10 + r10]
mov qword [rsp + 0x48], rax
mov rax, rcx
mul rcx
mov rcx, rax
mov rdi, rdx
mov rax, r10
mul r11
lea r8, [rcx + rax]
mov rax, rsi
cmp r8, rcx
adc rdi, 0
lea rcx, [rdi + rdx]
mul r9
add rax, r8
cmp rax, r8
mov qword [rsp + 0x68], rax
mov rax, r10
adc rcx, rdx
mul r14
mov qword [rbp - 0x18], rcx
mov rcx, rax
mov r13, rdx
mov rax, r15
mul r11
lea r8, [rcx + rax]
cmp r8, rcx
adc r13, 0
add r13, rdx
imul rax, rsi, 0x13
mul rsi
lea r12, [rax + r8]
mov rax, r15
cmp r12, r8
adc r13, rdx
mul r14
mov rcx, rax
mov rdi, rdx
mov rax, r10
mul r10
lea r8, [rcx + rax]
mov rax, rsi
cmp r8, rcx
adc rdi, 0
lea rcx, [rdi + rdx]
mul r11
mov r11, qword [rbp - 0x80]
lea r9, [rax + r8]
mov rdi, qword [rbp - 0x18]
cmp r9, r8
mov r15, rdx
mov rax, rsi
adc r15, rcx
mul r14
mov rcx, rax
mov r14, rdx
mov rax, r11
mul qword [rsp + 0x48]
lea r8, [rcx + rax]
mov rax, rbx
cmp r8, rcx
adc r14, 0
add r14, rdx
mul qword [rbp - 0x70]
lea rbx, [r8 + rax]
mov rax, qword [rbp - 0x70]
cmp rbx, r8
adc r14, rdx
mul qword [rbp - 0x60]
mov rcx, rax
mov r8, rdx
mov rax, rsi
mov rsi, qword [rsp + 0x68]
mul qword [rsp + 0x48]
lea r10, [rcx + rax]
mov rax, r11
cmp r10, rcx
adc r8, 0
shrd rsi, rdi, 0x33
add r8, rdx
mul r11
add rsi, r12
cmp rsi, r12
mov r11, rsi
adc r13, 0
lea rcx, [r10 + rax]
shrd r11, r13, 0x33
add r11, r9
cmp r11, r9
mov r9, r11
adc r15, 0
shrd r9, r15, 0x33
add r9, rbx
cmp r9, rbx
mov rdi, r9
adc r14, 0
shrd rdi, r14, 0x33
add rdi, rcx
cmp rdi, rcx
mov rax, rdi
adc rdx, 0
cmp rcx, r10
mov r10, qword [rsp + 0x28]
adc rdx, r8
shrd rax, rdx, 0x33
movabs rdx, 0x7ffffffffffff
imul rcx, rax, 0x13
mov rax, qword [rsp + 0x68]
and rsi, rdx
and rax, rdx
and r11, rdx
add rcx, rax
mov qword [rbp - 0x80], r11
mov rax, rcx
and r9, rdx
and rax, rdx
shr rcx, 0x33
add rsi, rcx
mov qword [rsp + 0x70], rax
mov rcx, qword [rsp + 0x20]
and rdi, rdx
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x78], r9
mov qword [rbp - 0x70], rdi
lea rax, [rcx + rcx]
mov qword [rsp + 0x48], rax
lea rax, [r10 + r10]
imul rsi, qword [rsp + 0x40], 0x13
mov rbx, qword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
mov qword [rbp - 0x60], rax
mov rax, rcx
mul rcx
imul r9, r15, 0x26
mov rcx, rax
lea r11, [rsi + rsi]
mov rdi, rdx
mov rax, r10
mul r11
lea r8, [rcx + rax]
mov rax, rbx
cmp r8, rcx
adc rdi, 0
lea rcx, [rdi + rdx]
mul r9
mov r9, qword [rsp + 0x48]
add rax, r8
cmp rax, r8
mov qword [rsp + 0x68], rax
mov rax, r10
adc rdx, rcx
mov qword [rbp - 0x18], rdx
mul r9
mov rcx, rax
mov rdi, rdx
mov rax, r15
mul r11
lea r8, [rcx + rax]
cmp r8, rcx
adc rdi, 0
imul rax, rbx, 0x13
lea rcx, [rdi + rdx]
mul rbx
mov r13, rdx
lea r12, [r8 + rax]
mov rax, r15
cmp r12, r8
adc r13, rcx
mul r9
mov rcx, rax
mov r15, rdx
mov rax, r10
mul r10
lea r8, [rcx + rax]
mov rax, rbx
cmp r8, rcx
adc r15, 0
add r15, rdx
mul r11
lea r10, [rax + r8]
mov rax, rbx
cmp r10, r8
adc r15, rdx
mul r9
mov rcx, rax
mov rdi, rdx
mov rax, qword [rsp + 0x30]
mul qword [rbp - 0x60]
lea r8, [rcx + rax]
mov rax, rsi
cmp r8, rcx
adc rdi, 0
lea rcx, [rdi + rdx]
mul qword [rsp + 0x40]
mov r14, rdx
lea rsi, [rax + r8]
mov rax, qword [rsp + 0x40]
cmp rsi, r8
adc r14, rcx
mul r9
mov rcx, rax
mov r8, rdx
mov rax, rbx
mul qword [rbp - 0x60]
lea r9, [rcx + rax]
cmp r9, rcx
adc r8, 0
add r8, rdx
mov rax, qword [rsp + 0x30]
mov rdi, qword [rbp - 0x18]
mov rbx, qword [rsp + 0x68]
mul rax
shrd rbx, rdi, 0x33
lea rcx, [rax + r9]
add rbx, r12
cmp rbx, r12
mov r11, rbx
adc r13, 0
shrd r11, r13, 0x33
add r11, r10
cmp r11, r10
mov r10, r11
adc r15, 0
shrd r10, r15, 0x33
add r10, rsi
cmp r10, rsi
mov rdi, r10
adc r14, 0
shrd rdi, r14, 0x33
movabs r14, 0x7ffffffffffff
add rdi, rcx
cmp rcx, r9
mov rax, rdi
adc rdx, 0
cmp rdi, rcx
adc rdx, r8
and r11, r14
shrd rax, rdx, 0x33
and r10, r14
mov qword [rsp + 0x30], r11
imul rcx, rax, 0x13
mov rax, qword [rsp + 0x68]
lea r8, [rsp + 0x20]
and rax, r14
mov qword [rsp + 0x38], r10
add rcx, rax
lea rdx, [rsp + 0x70]
mov rax, rcx
and rbx, r14
shr rcx, 0x33
and rax, r14
add rcx, rbx
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rcx
and rdi, r14
lea rcx, [rbp + 0x20]
mov qword [rsp + 0x40], rdi
call fcn.140048150
mov rsi, qword [rsp + 0x70]
movabs rcx, 0x3fffffffffff68
mov rax, rsi
sub rax, qword [rsp + 0x20]
add rax, rcx
mov qword [rsp + 0x20], rax
xor eax, eax
nop dword [rax + rax]
movdqu xmm0, xmmword [rsp + rax + 0x28]
movdqa xmm1, xmm6
psubq xmm1, xmm0
movdqu xmm0, xmmword [rsp + rax + 0x78]
paddq xmm1, xmm0
movdqu xmmword [rsp + rax + 0x28], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x140049160
mov eax, 0x1db41
mul qword [rsp + 0x20]
mov r11, rax
mov rbx, rax
shrd r11, rdx, 0x33
and rbx, r14
mov eax, 0x1db41
mul qword [rsp + 0x28]
add r11, rax
mov rdi, rdx
cmp r11, rax
mov r10, r11
mov eax, 0x1db41
adc rdi, 0
mul qword [rsp + 0x30]
shrd r10, rdi, 0x33
mov rcx, rdx
add r10, rax
cmp r10, rax
mov r9, r10
mov eax, 0x1db41
adc rcx, 0
mul qword [rsp + 0x38]
shrd r9, rcx, 0x33
mov rdi, rdx
add r9, rax
cmp r9, rax
mov r8, r9
mov eax, 0x1db41
adc rdi, 0
mul qword [rsp + 0x40]
shrd r8, rdi, 0x33
add r8, rax
cmp r8, rax
mov rax, r8
adc rdx, 0
and r8, r14
add r8, qword [rbp - 0x70]
and r11, r14
add r11, qword [rsp + 0x78]
and r10, r14
add r10, qword [rbp - 0x80]
and r9, r14
add r9, qword [rbp - 0x78]
shrd rax, rdx, 0x33
mov qword [rbp + 0xa0], r8
lea rdx, [rsp + 0x20]
imul rcx, rax, 0x13
lea r8, [rbp + 0x80]
mov qword [rbp + 0x88], r11
add rcx, rsi
mov qword [rbp + 0x90], r10
add rcx, rbx
mov qword [rbp + 0x98], r9
mov qword [rbp + 0x80], rcx
lea rcx, [rsp + 0x20]
call fcn.140048150
mov edi, dword [rbp - 0x28]
mov rax, qword [rbp + 0x150]
mov ecx, edi
mov r8, qword [rbp + 0x48]
mov r10, qword [rbp - 0x20]
mov r9, qword [rbp + 0x28]
shr rcx, 3
movzx edx, byte [rcx + rax]
movzx ecx, dil
mov rdi, qword [rbp + 0x20]
and cl, 7
shr rdx, cl
mov rax, rdi
xor rax, r8
and edx, 1
mov ecx, edx
xor rcx, qword [rbp - 0x58]
neg rcx
and rax, rcx
xor rdi, rax
xor r8, rax
mov qword [rbp + 0x20], rdi
mov qword [rbp - 0x10], r8
mov rax, r10
mov r11, qword [rbp + 0x30]
xor rax, r9
mov rbx, qword [rbp + 0x38]
and rax, rcx
mov rsi, qword [rsp + 0x50]
xor r10, rax
mov r13, qword [rsp + 0x28]
xor r9, rax
mov r12, qword [rsp + 0x30]
mov r14, qword [rbp - 0x50]
mov r15, qword [rsp + 0x38]
mov qword [rbp - 0x20], r10
mov qword [rbp - 8], r10
mov r10, qword [rsp + 0x58]
mov rax, r10
mov qword [rbp + 0x28], r9
xor rax, r11
and rax, rcx
xor r10, rax
xor r11, rax
mov qword [rsp + 0x58], r10
mov qword [rbp], r10
mov r10, qword [rsp + 0x60]
mov rax, r10
mov qword [rbp + 0x30], r11
xor rax, rbx
and rax, rcx
xor r10, rax
xor rbx, rax
mov rax, rsi
mov qword [rsp + 0x60], r10
mov qword [rbp + 8], r10
mov r10, qword [rbp + 0x40]
xor rax, r10
mov qword [rbp + 0x38], rbx
and rax, rcx
xor rsi, rax
xor r10, rax
mov rax, r14
mov qword [rsp + 0x50], rsi
mov qword [rbp + 0x10], rsi
mov rsi, qword [rsp + 0x20]
xor rax, rsi
mov qword [rbp + 0x40], r10
and rax, rcx
xor r14, rax
xor rsi, rax
mov qword [rbp - 0x60], r14
mov r14, qword [rbp - 0x48]
mov rax, r14
xor rax, r13
and rax, rcx
xor r14, rax
xor r13, rax
mov qword [rbp - 0x48], r14
mov r14, qword [rbp - 0x40]
mov rax, r14
mov qword [rsp + 0x28], r13
xor rax, r12
and rax, rcx
xor r14, rax
xor r12, rax
mov qword [rbp - 0x40], r14
mov r14, qword [rbp - 0x38]
mov rax, r14
mov qword [rsp + 0x30], r12
xor rax, r15
and rax, rcx
xor r14, rax
xor r15, rax
mov rax, qword [rbp - 0x30]
mov qword [rsp + 0x48], rax
mov qword [rbp - 0x38], r14
mov r14, qword [rsp + 0x40]
xor rax, r14
mov qword [rsp + 0x38], r15
and rax, rcx
mov rcx, qword [rsp + 0x48]
xor r14, rax
mov qword [rsp + 0x40], r14
xor rcx, rax
mov eax, dword [rbp - 0x28]
dec eax
mov qword [rbp - 0x58], rdx
mov rdx, qword [rbp - 0x60]
mov qword [rbp - 0x30], rcx
mov dword [rbp - 0x28], eax
cmp eax, 2
jge 0x140048810
mov qword [rsp + 0x58], 3
nop dword [rax]
lea rcx, [rdi + rsi]
movabs rax, 0x3fffffffffff68
sub rdi, rsi
lea r8, [r9 + r13]
add rdi, rax
mov qword [rsp + 0x50], r8
add r11, r12
mov qword [rsp + 0x20], rdi
add r15, rbx
mov qword [rsp + 0x68], r11
lea rdx, [r14 + r10]
mov qword [rbp - 0x58], r15
xor eax, eax
mov qword [rsp + 0x48], rdx
nop dword [rax]
movdqu xmm0, xmmword [rsp + rax + 0x28]
movdqa xmm1, xmm6
psubq xmm1, xmm0
movdqu xmm0, xmmword [rbp + rax + 0x28]
paddq xmm1, xmm0
movdqu xmmword [rsp + rax + 0x28], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x140049460
imul rbx, rdx, 0x13
imul r9, r11, 0x26
lea rsi, [rcx + rcx]
mov rax, rcx
mul rcx
lea r14, [r8 + r8]
mov rcx, rax
lea r10, [rbx + rbx]
mov r13, rdx
mov rax, r8
mul r10
lea r8, [rcx + rax]
mov rax, r15
cmp r8, rcx
adc r13, 0
add r13, rdx
mul r9
add rax, r8
cmp rax, r8
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x50]
adc r13, rdx
mul rsi
mov rcx, rax
mov r12, rdx
mov rax, r11
mul r10
lea r8, [rcx + rax]
cmp r8, rcx
adc r12, 0
add r12, rdx
imul rax, r15, 0x13
mul r15
lea r11, [r8 + rax]
mov rax, qword [rsp + 0x68]
cmp r11, r8
adc r12, rdx
mul rsi
mov rcx, rax
mov rdi, rdx
mov rax, qword [rsp + 0x50]
mul rax
lea r8, [rcx + rax]
mov rax, r15
cmp r8, rcx
adc rdi, 0
lea rcx, [rdi + rdx]
mul r10
mov r15, rdx
lea r10, [r8 + rax]
mov rax, qword [rbp - 0x58]
cmp r10, r8
adc r15, rcx
mul rsi
mov rcx, rax
mov rdi, rdx
mov rax, qword [rsp + 0x68]
mul r14
lea r8, [rcx + rax]
mov rax, rbx
cmp r8, rcx
adc rdi, 0
lea rcx, [rdi + rdx]
mul qword [rsp + 0x48]
mov r14, rdx
lea rbx, [rax + r8]
mov rax, qword [rsp + 0x48]
cmp rbx, r8
mov r8, qword [rsp + 0x50]
adc r14, rcx
mul rsi
mov rcx, rax
mov rdi, rdx
mov rax, qword [rbp - 0x58]
lea rdx, [r8 + r8]
mul rdx
lea r9, [rcx + rax]
mov rax, qword [rsp + 0x68]
cmp r9, rcx
adc rdi, 0
lea r8, [rdi + rdx]
mov rsi, qword [rsp + 0x60]
mul rax
shrd rsi, r13, 0x33
lea rcx, [r9 + rax]
add rsi, r11
cmp rsi, r11
mov r11, rsi
adc r12, 0
shrd r11, r12, 0x33
add r11, r10
cmp r11, r10
mov r10, r11
adc r15, 0
shrd r10, r15, 0x33
mov r15, qword [rsp + 0x30]
add r10, rbx
cmp r10, rbx
mov rdi, r10
adc r14, 0
shrd rdi, r14, 0x33
add rdi, rcx
cmp rcx, r9
mov rax, rdi
adc rdx, 0
cmp rdi, rcx
adc rdx, r8
imul rbx, qword [rsp + 0x40], 0x13
imul r9, r15, 0x26
shrd rax, rdx, 0x33
movabs rdx, 0x7ffffffffffff
imul rcx, rax, 0x13
mov rax, qword [rsp + 0x60]
and rdi, rdx
and rax, rdx
mov qword [rbp - 0x70], rdi
add rcx, rax
and r10, rdx
and rsi, rdx
mov qword [rbp - 0x78], r10
mov r10, qword [rsp + 0x28]
and r11, rdx
mov rax, rcx
mov qword [rbp - 0x80], r11
and rax, rdx
shr rcx, 0x33
mov qword [rsp + 0x70], rax
lea r11, [rbx + rbx]
add rsi, rcx
lea rax, [r10 + r10]
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x48], rax
mov rax, rcx
mul rcx
lea r14, [rcx + rcx]
mov qword [rsp + 0x78], rsi
mov rsi, qword [rsp + 0x38]
mov rcx, rax
mov rdi, rdx
mov qword [rbp - 0x60], r14
mov rax, r10
mul r11
lea r8, [rcx + rax]
mov rax, rsi
cmp r8, rcx
adc rdi, 0
lea rcx, [rdi + rdx]
mul r9
add rax, r8
cmp rax, r8
mov qword [rbp - 0x58], rax
mov rax, r10
adc rcx, rdx
mul r14
mov qword [rbp - 0x18], rcx
mov rcx, rax
mov r13, rdx
mov rax, r15
mul r11
lea r8, [rcx + rax]
cmp r8, rcx
adc r13, 0
mov rdi, qword [rbp - 0x18]
add r13, rdx
imul rax, rsi, 0x13
mul rsi
lea r12, [r8 + rax]
mov rax, r15
cmp r12, r8
adc r13, rdx
mul r14
mov rcx, rax
mov r15, rdx
mov rax, r10
mul r10
lea r8, [rcx + rax]
mov rax, rsi
cmp r8, rcx
adc r15, 0
add r15, rdx
mul r11
mov r11, qword [rsp + 0x30]
lea r10, [r8 + rax]
mov rax, rsi
cmp r10, r8
adc r15, rdx
mul r14
mov rcx, rax
mov r14, rdx
mov rax, r11
mul qword [rsp + 0x48]
lea r8, [rcx + rax]
mov rax, rbx
cmp r8, rcx
adc r14, 0
add r14, rdx
mul qword [rsp + 0x40]
lea rbx, [r8 + rax]
mov rax, qword [rsp + 0x40]
cmp rbx, r8
adc r14, rdx
mul qword [rbp - 0x60]
mov rcx, rax
mov r9, rdx
mov rax, rsi
mov rsi, qword [rbp - 0x58]
mul qword [rsp + 0x48]
lea r8, [rcx + rax]
mov rax, r11
cmp r8, rcx
adc r9, 0
shrd rsi, rdi, 0x33
add r9, rdx
mul r11
add rsi, r12
cmp rsi, r12
mov r11, rsi
adc r13, 0
lea rcx, [r8 + rax]
shrd r11, r13, 0x33
add r11, r10
cmp r11, r10
mov r10, r11
adc r15, 0
shrd r10, r15, 0x33
add r10, rbx
cmp r10, rbx
mov rdi, r10
adc r14, 0
shrd rdi, r14, 0x33
movabs r14, 0x7ffffffffffff
add rdi, rcx
cmp rcx, r8
mov rax, rdi
adc r9, 0
cmp rdi, rcx
adc r9, rdx
shrd rax, r9, 0x33
imul rcx, rax, 0x13
mov rax, qword [rbp - 0x58]
and rax, r14
add rcx, rax
mov rax, rcx
shr rcx, 0x33
lea r8, [rsp + 0x20]
and rax, r14
lea rdx, [rsp + 0x70]
and r11, r14
mov qword [rsp + 0x20], rax
and r10, r14
mov qword [rsp + 0x30], r11
and rsi, r14
mov qword [rsp + 0x38], r10
add rsi, rcx
and rdi, r14
lea rcx, [rbp + 0x20]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x40], rdi
call fcn.140048150
mov rsi, qword [rsp + 0x70]
movabs rcx, 0x3fffffffffff68
mov rax, rsi
sub rax, qword [rsp + 0x20]
add rax, rcx
mov qword [rsp + 0x20], rax
xor eax, eax
nop word [rax + rax]
movdqu xmm0, xmmword [rsp + rax + 0x28]
movdqa xmm1, xmm6
psubq xmm1, xmm0
movdqu xmm0, xmmword [rsp + rax + 0x78]
paddq xmm1, xmm0
movdqu xmmword [rsp + rax + 0x28], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x140049860
mov eax, 0x1db41
mul qword [rsp + 0x20]
mov r11, rax
mov rbx, rax
shrd r11, rdx, 0x33
and rbx, r14
mov eax, 0x1db41
mul qword [rsp + 0x28]
add r11, rax
mov rdi, rdx
cmp r11, rax
mov r10, r11
mov eax, 0x1db41
adc rdi, 0
mul qword [rsp + 0x30]
shrd r10, rdi, 0x33
mov rcx, rdx
add r10, rax
cmp r10, rax
mov r9, r10
mov eax, 0x1db41
adc rcx, 0
mul qword [rsp + 0x38]
shrd r9, rcx, 0x33
mov rdi, rdx
add r9, rax
cmp r9, rax
mov r8, r9
mov eax, 0x1db41
adc rdi, 0
mul qword [rsp + 0x40]
shrd r8, rdi, 0x33
add r8, rax
cmp r8, rax
mov rax, r8
adc rdx, 0
and r8, r14
add r8, qword [rbp - 0x70]
and r11, r14
add r11, qword [rsp + 0x78]
and r10, r14
add r10, qword [rbp - 0x80]
and r9, r14
add r9, qword [rbp - 0x78]
shrd rax, rdx, 0x33
mov qword [rbp + 0xa0], r8
lea rdx, [rsp + 0x20]
imul rcx, rax, 0x13
lea r8, [rbp + 0x80]
mov qword [rbp + 0x88], r11
add rcx, rsi
mov qword [rbp + 0x90], r10
add rcx, rbx
mov qword [rbp + 0x98], r9
mov qword [rbp + 0x80], rcx
lea rcx, [rsp + 0x20]
call fcn.140048150
sub qword [rsp + 0x58], 1
je 0x1400499b3
mov r14, qword [rsp + 0x40]
mov r15, qword [rsp + 0x38]
mov r12, qword [rsp + 0x30]
mov r13, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x20]
mov r10, qword [rbp + 0x40]
mov rbx, qword [rbp + 0x38]
mov r11, qword [rbp + 0x30]
mov r9, qword [rbp + 0x28]
mov rdi, qword [rbp + 0x20]
jmp 0x140049420
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 0xb0]
call fcn.140049bf0
mov r8d, 2
lea rdx, [rbp + 0xb0]
lea rcx, [rbp + 0x50]
call fcn.140049e00
lea r8, [rsp + 0x20]
lea rdx, [rbp + 0x50]
lea rcx, [rsp + 0x70]
call fcn.140048150
lea r8, [rbp + 0xb0]
lea rdx, [rsp + 0x70]
lea rcx, [rbp + 0xb0]
call fcn.140048150
lea rdx, [rbp + 0xb0]
lea rcx, [rbp + 0x50]
call fcn.140049bf0
lea r8, [rsp + 0x70]
lea rdx, [rbp + 0x50]
lea rcx, [rsp + 0x70]
call fcn.140048150
mov r8d, 5
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x10]
call fcn.140049e00
lea r8, [rsp + 0x70]
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x70]
call fcn.140048150
mov r8d, 0xa
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x10]
call fcn.140049e00
lea r8, [rsp + 0x70]
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0x50]
call fcn.140048150
mov r8d, 0x14
lea rdx, [rbp + 0x50]
lea rcx, [rbp - 0x10]
call fcn.140049e00
lea r8, [rbp + 0x50]
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x10]
call fcn.140048150
mov r8d, 0xa
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x10]
call fcn.140049e00
lea r8, [rsp + 0x70]
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x70]
call fcn.140048150
mov r8d, 0x32
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x10]
call fcn.140049e00
lea r8, [rsp + 0x70]
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0x50]
call fcn.140048150
mov r8d, 0x64
lea rdx, [rbp + 0x50]
lea rcx, [rbp - 0x10]
call fcn.140049e00
lea r8, [rbp + 0x50]
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x10]
call fcn.140048150
mov r8d, 0x32
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x10]
call fcn.140049e00
lea r8, [rsp + 0x70]
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x70]
call fcn.140048150
mov r8d, 5
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x70]
call fcn.140049e00
lea r8, [rbp + 0xb0]
lea rdx, [rsp + 0x70]
lea rcx, [rbp + 0xf0]
call fcn.140048150
lea r8, [rbp + 0xf0]
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x20]
call fcn.140048150
mov rcx, qword [rbp + 0xe8]
lea rdx, [rsp + 0x20]
call fcn.140047ea0
mov rdi, qword [rbp + 0x150]
lea rdx, [rbp + 0x118]
mov rcx, qword [rbp + 0x148]
mov rax, qword [rbp + 0x140]
cmp rdi, rdx
jne 0x140049bb0
cmp rax, rcx
cmovb rcx, rax
xor eax, eax
rep stosb byte [rdi], al
jmp 0x140049bb2
xor eax, eax
mov rcx, qword [rbp + 0x158]
xor rcx, rsp
call fcn.140065270
lea r11, [rsp + 0x270]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rbp
push rdi
push r14
lea rbp, [rax - 0x7b8]
sub rsp, 0x8a0
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x68], xmm10
movaps xmmword [rax - 0x78], xmm11
movaps xmmword [rax - 0x88], xmm12
movaps xmmword [rax - 0x98], xmm13
movaps xmmword [rax - 0xa8], xmm14
movaps xmmword [rax - 0xb8], xmm15
mov rax, qword [0x1400ea180]
xor rax, rsp
mov qword [rbp + 0x6f0], rax
movzx eax, byte [rdx + 1]
lea rsi, [rbp + 0x560]
mov byte [rbp + 0x561], al
mov r14, rcx
movzx eax, byte [rdx + 2]
xorps xmm0, xmm0
mov byte [rbp + 0x562], al
mov rbx, r8
movzx eax, byte [rdx + 3]
mov byte [rbp + 0x563], al
movzx eax, byte [rdx + 4]
movzx ecx, byte [rdx]
mov byte [rbp + 0x564], al
and cl, 0xf8
movzx eax, byte [rdx + 5]
mov byte [rbp + 0x565], al
movzx eax, byte [rdx + 6]
mov byte [rbp + 0x566], al
movzx eax, byte [rdx + 7]
mov byte [rbp + 0x567], al
movzx eax, byte [rdx + 8]
mov byte [rbp + 0x568], al
movzx eax, byte [rdx + 9]
mov byte [rbp + 0x569], al
movzx eax, byte [rdx + 0xa]
mov byte [rbp + 0x56a], al
movzx eax, byte [rdx + 0xb]
mov byte [rbp + 0x56b], al
movzx eax, byte [rdx + 0xc]
mov byte [rbp + 0x56c], al
movzx eax, byte [rdx + 0xd]
mov byte [rbp + 0x56d], al
movzx eax, byte [rdx + 0xe]
mov byte [rbp + 0x56e], al
movzx eax, byte [rdx + 0xf]
mov byte [rbp + 0x56f], al
movzx eax, byte [rdx + 0x10]
mov byte [rbp + 0x570], al
movzx eax, byte [rdx + 0x11]
mov byte [rbp + 0x571], al
movzx eax, byte [rdx + 0x12]
mov byte [rbp + 0x572], al
movzx eax, byte [rdx + 0x13]
mov byte [rbp + 0x573], al
movzx eax, byte [rdx + 0x14]
mov byte [rbp + 0x574], al
movzx eax, byte [rdx + 0x15]
mov byte [rbp + 0x575], al
movzx eax, byte [rdx + 0x16]
mov byte [rbp + 0x576], al
movzx eax, byte [rdx + 0x17]
mov byte [rbp + 0x577], al
movzx eax, byte [rdx + 0x18]
mov byte [rbp + 0x578], al
movzx eax, byte [rdx + 0x19]
mov byte [rbp + 0x579], al
movzx eax, byte [rdx + 0x1a]
mov byte [rbp + 0x57a], al
movzx eax, byte [rdx + 0x1b]
mov byte [rbp + 0x57b], al
movzx eax, byte [rdx + 0x1c]
mov byte [rbp + 0x57c], al
movzx eax, byte [rdx + 0x1d]
mov byte [rbp + 0x57d], al
movzx eax, byte [rdx + 0x1e]
mov byte [rbp + 0x57e], al
movzx eax, byte [rdx + 0x1f]
and al, 0x7f
mov qword [rbp + 0x588], 0xffffffffffffffff
or al, 0x40
mov qword [rbp + 0x590], 0x20
mov byte [rbp + 0x57f], al
xor eax, eax
mov qword [rbp + 0x624], rax
mov dword [rbp + 0x62c], eax
mov byte [rbp + 0x581], 1
mov qword [rbp + 0x598], rsi
mov byte [rbp + 0x560], cl
mov dword [rbp + 0x600], 1
movups xmmword [rbp + 0x604], xmm0
movups xmmword [rbp + 0x614], xmm0
mov r9d, dword [rbx + 0x10]
xorps xmm8, xmm8
mov ecx, dword [r8]
xorps xmm9, xmm9
mov edx, dword [r8 + 4]
mov r10d, dword [rbx + 0x14]
mov r11d, dword [rbx + 0x18]
mov edi, dword [r8 + 8]
mov ebx, dword [rbx + 0x1c]
mov r8d, dword [r8 + 0xc]
mov qword [rbp + 0x5c4], rax
mov dword [rbp + 0x5cc], eax
mov eax, ecx
and eax, 0x3ffffff
shr ecx, 0x1a
mov dword [rbp + 0x5d0], eax
mov eax, edx
shl eax, 6
or ecx, eax
shr edx, 0x13
mov eax, edi
mov dword [rbp + 0x5a0], 1
shl eax, 0xd
and ecx, 0x1ffffff
or eax, edx
shr edi, 0xd
and eax, 0x3ffffff
mov dword [rbp + 0x5d4], ecx
mov dword [rbp + 0x5d8], eax
lea rdx, [rbp + 0x5d0]
mov eax, r8d
lea rcx, [rbp + 0x430]
shl eax, 0x13
or eax, edi
shr r8d, 6
and eax, 0x1ffffff
mov dword [rbp + 0x5e0], r8d
mov dword [rbp + 0x5dc], eax
mov eax, r9d
and eax, 0x1ffffff
shr r9d, 0x19
mov dword [rbp + 0x5e4], eax
mov eax, r10d
shl eax, 7
or r9d, eax
shr r10d, 0x13
mov eax, r11d
and r9d, 0x3ffffff
shl eax, 0xd
or eax, r10d
shr r11d, 0xc
and eax, 0x1ffffff
mov dword [rbp + 0x5e8], r9d
mov dword [rbp + 0x5ec], eax
xor r9d, r9d
mov eax, ebx
mov qword [rbp + 0x5f8], r9
shl eax, 0x14
or eax, r11d
shr ebx, 6
and eax, 0x3ffffff
and ebx, 0x1ffffff
mov dword [rbp + 0x5f0], eax
movups xmmword [rbp + 0x5a4], xmm0
mov dword [rbp + 0x5f4], ebx
movups xmmword [rbp + 0x5b4], xmm0
movups xmmword [rsp + 0x20], xmm8
call fcn.140051080
movdqa xmm2, xmmword [rbp + 0x620]
mov r10d, 0xfe
movdqa xmm7, xmmword [rbp + 0x610]
movdqa xmm10, xmmword [rbp + 0x600]
movdqa xmm15, xmmword [rbp + 0x5f0]
movdqa xmm14, xmmword [rbp + 0x5e0]
movdqa xmm13, xmmword [rbp + 0x5d0]
movdqa xmm6, xmmword [rbp + 0x5c0]
pxor xmm14, xmm7
pxor xmm6, xmmword [rsp + 0x20]
pxor xmm15, xmm2
movdqa xmm1, xmm10
mov rax, r10
pxor xmm1, xmm13
shr rax, 3
movdqa xmm11, xmm1
movdqa xmm13, xmm15
movzx ecx, r10b
and cl, 7
movzx edi, byte [rax + rsi]
shr rdi, cl
and edi, 1
mov eax, edi
xor eax, r9d
mov r9d, edi
neg eax
movd xmm0, eax
pshufd xmm12, xmm0, 0
movdqa xmm0, xmmword [rbp + 0x5a0]
pand xmm13, xmm12
pxor xmm0, xmm8
pxor xmm13, xmm2
pand xmm11, xmm12
pxor xmm11, xmm10
movdqa xmm10, xmm14
pand xmm10, xmm12
movdqa xmm4, xmm11
pxor xmm4, xmm1
pxor xmm10, xmm7
movdqa xmm1, xmmword [rbp + 0x5b0]
movdqa xmm7, xmm12
pand xmm7, xmm0
pxor xmm1, xmm9
pxor xmm7, xmm8
movdqa xmm5, xmm10
movdqa xmm8, xmm12
pxor xmm5, xmm14
pand xmm8, xmm1
movdqa xmm2, xmm7
pxor xmm2, xmm0
pxor xmm8, xmm9
movdqa xmm0, xmm13
movdqa xmm3, xmm8
pxor xmm0, xmm15
pxor xmm3, xmm1
punpckldq xmm13, xmm0
pand xmm12, xmm6
pxor xmm12, xmmword [rsp + 0x20]
movdqa xmm1, xmm7
punpckldq xmm1, xmm2
movdqa xmm0, xmm12
pxor xmm0, xmm6
punpckhdq xmm7, xmm2
punpckldq xmm12, xmm0
movdqa xmm9, xmm11
punpckldq xmm9, xmm4
movdqa xmm2, xmm8
punpckhdq xmm11, xmm4
movdqa xmm14, xmm7
movdqa xmmword [rsp + 0x30], xmm13
movdqa xmm4, xmm10
punpckhdq xmm8, xmm3
movdqa xmm13, xmm1
movdqa xmm0, xmm8
punpckhdq xmm10, xmm5
paddd xmm0, xmm10
punpckldq xmm2, xmm3
movdqa xmmword [rbp - 0x10], xmm0
movdqa xmm15, xmm2
punpckldq xmm4, xmm5
movdqa xmm0, xmm12
paddd xmm0, xmmword [rsp + 0x30]
paddd xmm13, xmm9
paddd xmm14, xmm11
movdqa xmmword [rbp + 0x1f0], xmm13
paddd xmm15, xmm4
movdqa xmmword [rbp + 0x210], xmm14
movdqa xmmword [rbp + 0x230], xmm15
paddd xmm9, xmmword [0x1400c83e0]
movdqa xmm3, xmmword [0x1400c83f0]
psubd xmm9, xmm1
movdqa xmmword [rsp + 0x20], xmm0
movdqa xmm5, xmm9
paddd xmm11, xmm3
paddd xmm4, xmm3
psubd xmm11, xmm7
psubd xmm4, xmm2
movdqa xmm7, xmmword [rsp + 0x30]
movdqa xmm6, xmm11
punpcklqdq xmm5, xmm4
paddd xmm7, xmm3
movdqa xmm0, xmm5
punpckhqdq xmm9, xmm4
pand xmm5, xmmword [0x1400c8350]
paddd xmm10, xmm3
psrld xmm0, 0x1a
psubd xmm10, xmm8
paddd xmm9, xmm0
punpcklqdq xmm6, xmm10
movdqa xmm0, xmm6
punpckhqdq xmm11, xmm10
pand xmm6, xmmword [0x1400c8350]
psubd xmm7, xmm12
psrld xmm0, 0x1a
paddd xmm11, xmm0
movdqa xmm0, xmm9
pand xmm9, xmmword [0x1400c8360]
movdqa xmm1, xmm11
pand xmm11, xmmword [0x1400c8360]
psrld xmm0, 0x19
paddd xmm6, xmm0
psrld xmm1, 0x19
movdqa xmm0, xmm1
movdqa xmm4, xmm6
pslldq xmm0, 8
paddd xmm5, xmm0
psrldq xmm1, 8
paddd xmm7, xmm1
punpcklqdq xmm4, xmm11
pshufd xmm0, xmm13, 0x50
movdqa xmm2, xmm5
movdqa xmmword [rbp + 0x2f0], xmm0
punpcklqdq xmm2, xmm9
punpckhqdq xmm5, xmm9
pshufd xmm1, xmm13, 0xfa
movdqa xmmword [rbp + 0x300], xmm1
pshufd xmm0, xmm14, 0x50
movdqa xmmword [rbp + 0x310], xmm0
pshufd xmm1, xmm14, 0xfa
movdqa xmmword [rbp + 0x320], xmm1
pshufd xmm0, xmm15, 0x50
movdqa xmmword [rbp + 0x330], xmm0
pshufd xmm0, xmmword [rbp - 0x10], 0x50
movdqa xmmword [rbp + 0x350], xmm0
pshufd xmm0, xmmword [rsp + 0x20], 0x50
movdqa xmmword [rbp + 0x370], xmm0
pshufd xmm1, xmm15, 0xfa
movdqa xmmword [rbp + 0x340], xmm1
pshufd xmm1, xmmword [rbp - 0x10], 0xfa
movdqa xmmword [rbp + 0x360], xmm1
pshufd xmm1, xmmword [rsp + 0x20], 0xfa
movdqa xmmword [rbp + 0x380], xmm1
pshufd xmm0, xmm2, 5
movdqa xmmword [rbp + 0x250], xmm0
pshufd xmm1, xmm2, 0xaf
pshufd xmm0, xmm4, 5
movdqa xmmword [rbp + 0x260], xmm1
pshufd xmm1, xmm4, 0xaf
movdqa xmmword [rbp + 0x270], xmm0
pshufd xmm0, xmm5, 5
punpckhqdq xmm6, xmm11
movdqa xmmword [rbp + 0x280], xmm1
movdqa xmmword [rbp + 0x290], xmm0
movdqa xmmword [rbp + 0x200], xmm2
movdqa xmmword [rbp + 0x220], xmm4
movdqa xmmword [rbp + 0x240], xmm5
movdqa xmmword [rbp - 0x20], xmm6
movdqa xmmword [rsp + 0x30], xmm7
pshufd xmm1, xmm5, 0xaf
movdqa xmmword [rbp + 0x2a0], xmm1
lea r8, [rbp + 0x250]
pshufd xmm1, xmm6, 0xaf
lea rdx, [rbp + 0x2f0]
pshufd xmm0, xmm6, 5
lea rcx, [rbp + 0xa0]
movdqa xmmword [rbp + 0x2c0], xmm1
movdqa xmmword [rbp + 0x2b0], xmm0
pshufd xmm1, xmm7, 0xaf
pshufd xmm0, xmm7, 5
movdqa xmmword [rbp + 0x2e0], xmm1
movdqa xmmword [rbp + 0x2d0], xmm0
call fcn.1400507a0
movdqa xmm0, xmmword [0x1400c83f0]
movdqa xmm4, xmmword [rbp + 0xa0]
movdqa xmm2, xmmword [rbp + 0xe0]
movdqa xmm15, xmm4
punpckhqdq xmm4, xmmword [rbp + 0xb0]
movdqa xmm5, xmm2
punpcklqdq xmm15, xmmword [rbp + 0xb0]
movdqa xmm9, xmm4
punpckhqdq xmm2, xmmword [rbp + 0xf0]
paddd xmm9, xmm15
paddd xmm15, xmmword [0x1400c83e0]
movdqa xmm11, xmm2
punpcklqdq xmm5, xmmword [rbp + 0xf0]
psubd xmm15, xmm4
movdqa xmm3, xmmword [rbp + 0xc0]
movdqa xmm4, xmm15
movdqa xmm1, xmmword [rbp + 0x100]
movdqa xmm13, xmm3
punpcklqdq xmm13, xmmword [rbp + 0xd0]
movdqa xmm6, xmm1
punpckhqdq xmm3, xmmword [rbp + 0xd0]
paddd xmm11, xmm5
punpckhqdq xmm1, xmmword [rbp + 0x110]
paddd xmm5, xmm0
punpcklqdq xmm6, xmmword [rbp + 0x110]
psubd xmm5, xmm2
movdqa xmm8, xmmword [rbp + 0x120]
movdqa xmm10, xmm3
paddd xmm10, xmm13
punpcklqdq xmm4, xmm5
paddd xmm13, xmm0
punpckhqdq xmm15, xmm5
psubd xmm13, xmm3
movdqa xmm12, xmm1
movdqa xmm7, xmm8
paddd xmm12, xmm6
punpcklqdq xmm7, xmmword [rbp + 0x130]
paddd xmm6, xmm0
punpckhqdq xmm8, xmmword [rbp + 0x130]
psubd xmm6, xmm1
movdqa xmmword [rbp + 0x1e0], xmm7
movdqa xmm0, xmm4
pand xmm4, xmmword [0x1400c8350]
movdqa xmm14, xmm8
psrld xmm0, 0x1a
paddd xmm14, xmm7
paddd xmm15, xmm0
movdqa xmm7, xmm13
punpcklqdq xmm7, xmm6
movdqa xmm0, xmm7
punpckhqdq xmm13, xmm6
pand xmm7, xmmword [0x1400c8350]
psrld xmm0, 0x1a
paddd xmm13, xmm0
movdqa xmm0, xmm15
pand xmm15, xmmword [0x1400c8360]
movdqa xmm3, xmm13
pand xmm13, xmmword [0x1400c8360]
psrld xmm0, 0x19
paddd xmm7, xmm0
psrld xmm3, 0x19
movdqa xmm0, xmm3
movdqa xmm2, xmm7
pslldq xmm0, 8
paddd xmm4, xmm0
punpcklqdq xmm2, xmm13
movdqa xmm1, xmm4
punpcklqdq xmm1, xmm15
movdqa xmm5, xmmword [rbp + 0x1e0]
lea rdx, [rbp + 0xa0]
paddd xmm5, xmmword [0x1400c83f0]
lea rcx, [rbp + 0x390]
movdqa xmm0, xmm9
punpckhqdq xmm4, xmm15
punpcklqdq xmm0, xmm1
psubd xmm5, xmm8
movdqa xmmword [rbp + 0xa0], xmm0
movdqa xmm0, xmm10
punpcklqdq xmm0, xmm2
movdqa xmmword [rbp + 0xc0], xmm0
movdqa xmm0, xmm11
punpcklqdq xmm0, xmm4
movdqa xmmword [rbp + 0xe0], xmm0
movdqa xmm0, xmm12
punpckhqdq xmm7, xmm13
punpcklqdq xmm0, xmm7
movdqa xmmword [rbp + 0x100], xmm0
movdqa xmm0, xmm14
psrldq xmm3, 8
paddd xmm5, xmm3
punpckhqdq xmm9, xmm1
punpcklqdq xmm0, xmm5
punpckhqdq xmm10, xmm2
punpckhqdq xmm11, xmm4
punpckhqdq xmm12, xmm7
punpckhqdq xmm14, xmm5
movdqa xmmword [rbp + 0x120], xmm0
movdqa xmmword [rbp + 0xb0], xmm9
movdqa xmmword [rbp + 0xd0], xmm10
movdqa xmmword [rbp + 0xf0], xmm11
movdqa xmmword [rbp + 0x110], xmm12
movdqa xmmword [rbp + 0x130], xmm14
call fcn.140052d00
movdqa xmm4, xmmword [rbp + 0x3f0]
lea r8, [rbp + 0x430]
movdqa xmm2, xmmword [rbp + 0x410]
lea rdx, [rbp + 0x5a0]
movdqa xmm9, xmmword [rbp + 0x390]
lea rcx, [rbp + 0x5a0]
movdqa xmm7, xmmword [rbp + 0x3b0]
movdqa xmm13, xmm9
punpckldq xmm13, xmmword [rbp + 0x3a0]
movdqa xmm0, xmm7
punpckldq xmm0, xmmword [rbp + 0x3c0]
movdqa xmm15, xmm2
movdqa xmm8, xmmword [rbp + 0x3d0]
punpckhdq xmm9, xmmword [rbp + 0x3a0]
movdqa xmm14, xmm8
punpckhdq xmm7, xmmword [rbp + 0x3c0]
punpckhdq xmm8, xmmword [rbp + 0x3e0]
punpckldq xmm14, xmmword [rbp + 0x3e0]
punpckhdq xmm2, xmmword [rbp + 0x420]
punpckldq xmm15, xmmword [rbp + 0x420]
punpcklqdq xmm13, xmm0
movdqa xmm0, xmm4
punpckhdq xmm4, xmmword [rbp + 0x400]
punpckldq xmm0, xmmword [rbp + 0x400]
punpcklqdq xmm8, xmm4
punpcklqdq xmm9, xmm7
movdqa xmmword [rbp + 0x5b0], xmm8
punpcklqdq xmm14, xmm0
movdqa xmmword [rbp + 0x5a0], xmm9
movdqa xmmword [rbp + 0x5c0], xmm2
call fcn.140051220
movdqa xmm2, xmmword [rbp + 0x1f0]
movdqa xmm3, xmmword [rbp + 0x210]
movdqa xmm0, xmm2
punpcklqdq xmm0, xmmword [rbp + 0x200]
punpckhqdq xmm2, xmmword [rbp + 0x200]
movdqa xmmword [rsp + 0x40], xmm0
movdqa xmm0, xmm3
punpcklqdq xmm0, xmmword [rbp + 0x220]
punpckhqdq xmm3, xmmword [rbp + 0x220]
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmmword [rsp + 0x50], xmm2
movdqa xmm2, xmmword [rbp + 0x230]
movdqa xmm0, xmm2
movdqa xmmword [rsp + 0x70], xmm3
punpcklqdq xmm0, xmmword [rbp + 0x240]
punpckhqdq xmm2, xmmword [rbp + 0x240]
lea rdx, [rsp + 0x40]
movdqa xmm1, xmmword [rsp + 0x20]
lea rcx, [rbp]
movdqa xmmword [rbp - 0x80], xmm0
movdqa xmmword [rbp - 0x70], xmm2
movdqa xmm2, xmmword [rbp - 0x10]
movdqa xmm0, xmm2
punpckhqdq xmm2, xmmword [rbp - 0x20]
punpcklqdq xmm0, xmmword [rbp - 0x20]
movdqa xmmword [rbp - 0x60], xmm0
movdqa xmm0, xmm1
punpcklqdq xmm0, xmmword [rsp + 0x30]
punpckhqdq xmm1, xmmword [rsp + 0x30]
movdqa xmmword [rbp - 0x40], xmm0
movdqa xmmword [rbp - 0x50], xmm2
movdqa xmmword [rbp - 0x30], xmm1
call fcn.140052d00
movdqa xmm7, xmmword [0x1400c83a0]
movdqa xmm6, xmmword [0x1400c8330]
movdqa xmm5, xmmword [0x1400c8340]
movdqa xmm8, xmmword [rbp]
movdqa xmm9, xmmword [rbp + 0x10]
movdqa xmm11, xmmword [rbp + 0x40]
movdqa xmm10, xmmword [rbp + 0x50]
movdqa xmm1, xmmword [rbp + 0x20]
movdqa xmm2, xmmword [rbp + 0x60]
movdqa xmm3, xmmword [rbp + 0x30]
movdqa xmm4, xmmword [rbp + 0x70]
pmuludq xmm1, xmm7
pmuludq xmm2, xmm7
pmuludq xmm11, xmm7
pmuludq xmm3, xmm7
pmuludq xmm8, xmm7
pmuludq xmm4, xmm7
pmuludq xmm9, xmm7
pmuludq xmm10, xmm7
movdqa xmm0, xmm8
psrlq xmm0, 0x1a
paddq xmm9, xmm0
movdqa xmm0, xmm11
psrlq xmm0, 0x1a
pand xmm11, xmm6
paddq xmm10, xmm0
movdqa xmm0, xmm9
psrlq xmm0, 0x19
paddq xmm1, xmm0
movdqa xmm0, xmm10
psrlq xmm0, 0x19
paddq xmm2, xmm0
movdqa xmm0, xmm1
pand xmm0, xmm6
psrlq xmm1, 0x1a
movdqa xmmword [rbp + 0x160], xmm0
paddq xmm3, xmm1
movdqa xmm1, xmmword [rbp + 0x80]
movdqa xmm0, xmm2
pand xmm0, xmm6
psrlq xmm2, 0x1a
movdqa xmmword [rbp + 0x1a0], xmm0
paddq xmm4, xmm2
movdqa xmm2, xmmword [rbp + 0x90]
movdqa xmm0, xmm3
pand xmm0, xmm5
pmuludq xmm1, xmm7
movdqa xmmword [rbp + 0x170], xmm0
movdqa xmm0, xmm4
pand xmm0, xmm5
psrlq xmm4, 0x19
movdqa xmmword [rbp + 0x1b0], xmm0
pmuludq xmm2, xmm7
paddq xmm1, xmm4
psrlq xmm3, 0x19
movdqa xmm0, xmm1
paddq xmm11, xmm3
pand xmm0, xmm6
psrlq xmm1, 0x1a
movdqa xmmword [rbp + 0x1c0], xmm0
paddq xmm2, xmm1
movdqa xmm0, xmm2
pand xmm0, xmm5
psrlq xmm2, 0x19
lea r8, [rbp + 0x140]
pmuludq xmm2, xmmword [0x1400c8370]
lea rdx, [rbp]
movdqa xmmword [rbp + 0x1d0], xmm0
lea rcx, [rsp + 0x40]
movdqa xmm1, xmm11
pand xmm8, xmm6
pand xmm9, xmm5
psrlq xmm11, 0x1a
pand xmm10, xmm5
pand xmm1, xmm6
paddq xmm2, xmm8
movdqa xmmword [rbp + 0x180], xmm1
movdqa xmm0, xmm2
paddq xmm10, xmm11
psrlq xmm2, 0x1a
pand xmm0, xmm6
paddq xmm9, xmm2
movdqa xmmword [rbp + 0x140], xmm0
movdqa xmmword [rbp + 0x150], xmm9
movdqa xmmword [rbp + 0x190], xmm10
call fcn.14004fca0
movdqa xmm8, xmmword [rsp + 0x40]
dec r10
movdqa xmm6, xmmword [rsp + 0x60]
movdqa xmm10, xmm8
movdqa xmm9, xmmword [rbp - 0x80]
movdqa xmm0, xmm6
punpckldq xmm0, xmmword [rsp + 0x70]
movdqa xmm7, xmm9
movdqa xmm4, xmmword [rbp - 0x60]
movdqa xmm11, xmmword [rbp - 0x40]
punpckldq xmm10, xmmword [rsp + 0x50]
movdqa xmm12, xmm11
punpckldq xmm7, xmmword [rbp - 0x70]
punpckldq xmm12, xmmword [rbp - 0x30]
punpckhdq xmm8, xmmword [rsp + 0x50]
punpckhdq xmm6, xmmword [rsp + 0x70]
punpckhdq xmm9, xmmword [rbp - 0x70]
punpckhdq xmm11, xmmword [rbp - 0x30]
punpcklqdq xmm10, xmm0
movdqa xmm0, xmm4
punpckldq xmm0, xmmword [rbp - 0x50]
punpckhdq xmm4, xmmword [rbp - 0x50]
punpcklqdq xmm7, xmm0
movdqa xmmword [rbp - 0x20], xmm12
punpcklqdq xmm8, xmm6
punpcklqdq xmm9, xmm4
movdqa xmmword [rsp + 0x20], xmm11
cmp r10, 3
jb 0x1400525c4
mov rsi, qword [rbp + 0x598]
movdqa xmm2, xmm12
jmp 0x140051b83
pxor xmm14, xmm7
pxor xmm15, xmm12
neg edi
pxor xmm13, xmm10
movd xmm0, edi
mov edi, 3
pshufd xmm1, xmm0, 0
pand xmm14, xmm1
pand xmm15, xmm1
pxor xmm14, xmm7
pand xmm13, xmm1
movdqa xmm7, xmmword [rbp + 0x5a0]
pxor xmm15, xmm12
pxor xmm7, xmm8
pxor xmm13, xmm10
pand xmm7, xmm1
pxor xmm7, xmm8
movdqa xmm8, xmmword [rbp + 0x5b0]
pxor xmm8, xmm9
movdqa xmm0, xmm7
pand xmm8, xmm1
pxor xmm8, xmm9
movdqa xmm9, xmmword [rbp + 0x5c0]
pxor xmm9, xmm11
movdqa xmm12, xmm8
pand xmm9, xmm1
pxor xmm9, xmm11
movdqa xmm10, xmmword [0x1400c8330]
lea rdx, [rsp + 0x40]
movdqa xmm11, xmmword [0x1400c8340]
lea rcx, [rbp]
movdqa xmm5, xmm13
movdqa xmm6, xmm14
paddd xmm13, xmmword [0x1400c83b0]
paddd xmm5, xmm7
paddd xmm14, xmmword [0x1400c83c0]
psubd xmm13, xmm0
paddd xmm6, xmm8
pshufd xmm2, xmm13, 0xf5
pand xmm2, xmmword [0x1400c8300]
psubd xmm14, xmm12
movdqa xmm3, xmm2
pshufd xmm4, xmm13, 0xa0
pand xmm4, xmmword [0x1400c8300]
pand xmm2, xmm11
psrld xmm3, 0x19
movdqa xmm1, xmm4
psrld xmm1, 0x1a
movdqa xmm0, xmm3
paddd xmm2, xmm1
pslldq xmm0, 8
psrldq xmm3, 8
pand xmm4, xmm10
paddd xmm4, xmm0
paddd xmm14, xmm3
movdqa xmm0, xmm4
movdqa xmm1, xmm5
punpckldq xmm0, xmm2
movdqa xmm3, xmm6
punpckhdq xmm4, xmm2
movdqa xmm2, xmm15
paddd xmm15, xmmword [0x1400c83d0]
paddd xmm2, xmm9
punpcklqdq xmm0, xmm4
psubd xmm15, xmm9
punpcklqdq xmm1, xmm0
punpckhqdq xmm5, xmm0
pshufd xmm0, xmm1, 0xf5
punpcklqdq xmm3, xmm14
movdqa xmmword [rsp + 0x50], xmm0
movdqa xmmword [rsp + 0x40], xmm1
pshufd xmm0, xmm3, 0xf5
pshufd xmm1, xmm5, 0xf5
punpckhqdq xmm6, xmm14
punpcklqdq xmm2, xmm15
movdqa xmmword [rbp - 0x70], xmm0
movdqa xmmword [rsp + 0x70], xmm1
pshufd xmm0, xmm2, 0xf5
pshufd xmm1, xmm6, 0xf5
movdqa xmmword [rbp - 0x30], xmm0
movdqa xmmword [rsp + 0x60], xmm5
movdqa xmmword [rbp - 0x80], xmm3
movdqa xmmword [rbp - 0x60], xmm6
movdqa xmmword [rbp - 0x40], xmm2
movdqa xmmword [rbp - 0x50], xmm1
call fcn.140052d00
movdqa xmm5, xmmword [0x1400c83a0]
movdqa xmm6, xmmword [rbp]
movdqa xmm7, xmmword [rbp + 0x10]
movdqa xmm9, xmmword [rbp + 0x40]
movdqa xmm8, xmmword [rbp + 0x50]
movdqa xmm2, xmmword [rbp + 0x20]
movdqa xmm3, xmmword [rbp + 0x60]
pmuludq xmm6, xmm5
pmuludq xmm7, xmm5
pmuludq xmm9, xmm5
pmuludq xmm8, xmm5
pmuludq xmm2, xmm5
movdqa xmm0, xmm6
pmuludq xmm3, xmm5
psrlq xmm0, 0x1a
paddq xmm7, xmm0
movdqa xmm0, xmm9
psrlq xmm0, 0x1a
paddq xmm8, xmm0
movdqa xmm0, xmm7
psrlq xmm0, 0x19
paddq xmm2, xmm0
movdqa xmm4, xmmword [rbp + 0x30]
lea r8, [rbp + 0x140]
movdqa xmm0, xmm8
pmuludq xmm4, xmm5
psrlq xmm0, 0x19
lea rdx, [rbp]
paddq xmm3, xmm0
lea rcx, [rsp + 0x40]
movdqa xmm0, xmm2
movdqa xmm1, xmm3
psrlq xmm2, 0x1a
pand xmm1, xmm10
paddq xmm4, xmm2
movdqa xmmword [rbp + 0x1a0], xmm1
movdqa xmm2, xmmword [rbp + 0x70]
pand xmm0, xmm10
pmuludq xmm2, xmm5
pand xmm9, xmm10
movdqa xmmword [rbp + 0x160], xmm0
pand xmm6, xmm10
movdqa xmm0, xmm4
psrlq xmm3, 0x1a
pand xmm0, xmm11
psrlq xmm4, 0x19
movdqa xmmword [rbp + 0x170], xmm0
paddq xmm9, xmm4
paddq xmm2, xmm3
pand xmm7, xmm11
movdqa xmm1, xmm2
pand xmm8, xmm11
psrlq xmm2, 0x19
pand xmm1, xmm11
movdqa xmmword [rbp + 0x1b0], xmm1
movdqa xmm1, xmmword [rbp + 0x80]
pmuludq xmm1, xmm5
paddq xmm1, xmm2
movdqa xmm2, xmmword [rbp + 0x90]
pmuludq xmm2, xmm5
movdqa xmm0, xmm1
pand xmm0, xmm10
psrlq xmm1, 0x1a
movdqa xmmword [rbp + 0x1c0], xmm0
paddq xmm2, xmm1
movdqa xmm1, xmm9
movdqa xmm0, xmm2
psrlq xmm9, 0x1a
psrlq xmm2, 0x19
pand xmm0, xmm11
pmuludq xmm2, xmmword [0x1400c8370]
pand xmm1, xmm10
movdqa xmmword [rbp + 0x1d0], xmm0
paddq xmm8, xmm9
movdqa xmmword [rbp + 0x180], xmm1
movdqa xmmword [rbp + 0x190], xmm8
paddq xmm2, xmm6
movdqa xmm0, xmm2
psrlq xmm2, 0x1a
paddq xmm7, xmm2
pand xmm0, xmm10
movdqa xmmword [rbp + 0x150], xmm7
movdqa xmmword [rbp + 0x140], xmm0
call fcn.14004fca0
movdqa xmm7, xmmword [rsp + 0x40]
movdqa xmm6, xmmword [rsp + 0x60]
movdqa xmm13, xmm7
punpckldq xmm13, xmmword [rsp + 0x50]
movdqa xmm0, xmm6
punpckldq xmm0, xmmword [rsp + 0x70]
movdqa xmm8, xmmword [rbp - 0x80]
movdqa xmm5, xmmword [rbp - 0x60]
movdqa xmm14, xmm8
movdqa xmm9, xmmword [rbp - 0x40]
punpckldq xmm14, xmmword [rbp - 0x70]
movdqa xmm15, xmm9
punpckldq xmm15, xmmword [rbp - 0x30]
punpckhdq xmm7, xmmword [rsp + 0x50]
punpckhdq xmm6, xmmword [rsp + 0x70]
punpcklqdq xmm13, xmm0
movdqa xmm0, xmm5
punpckldq xmm0, xmmword [rbp - 0x50]
punpcklqdq xmm14, xmm0
punpckhdq xmm8, xmmword [rbp - 0x70]
punpckhdq xmm5, xmmword [rbp - 0x50]
punpckhdq xmm9, xmmword [rbp - 0x30]
punpcklqdq xmm8, xmm5
punpcklqdq xmm7, xmm6
movdqa xmm12, xmm8
movdqa xmm0, xmm7
sub rdi, 1
jne 0x140052650
mov r8d, 1
movdqa xmmword [rbp + 0x610], xmm14
lea rdx, [rbp + 0x660]
movdqa xmmword [rbp + 0x600], xmm13
lea rcx, [rbp + 0x690]
movdqa xmmword [rbp + 0x620], xmm15
movdqa xmmword [rbp + 0x660], xmm7
movdqa xmmword [rbp + 0x670], xmm8
movdqa xmmword [rbp + 0x680], xmm9
call fcn.1400532c0
mov r8d, 2
lea rdx, [rbp + 0x690]
lea rcx, [rbp + 0x630]
call fcn.1400532c0
lea r8, [rbp + 0x660]
lea rdx, [rbp + 0x630]
lea rcx, [rbp + 0x5d0]
call fcn.1400500f0
lea r8, [rbp + 0x690]
lea rdx, [rbp + 0x5d0]
lea rcx, [rbp + 0x690]
call fcn.1400500f0
mov r8d, 1
lea rdx, [rbp + 0x690]
lea rcx, [rbp + 0x630]
call fcn.1400532c0
lea r8, [rbp + 0x5d0]
lea rdx, [rbp + 0x630]
lea rcx, [rbp + 0x5d0]
call fcn.1400500f0
mov r8d, 5
lea rdx, [rbp + 0x5d0]
lea rcx, [rbp + 0x5a0]
call fcn.1400532c0
lea r8, [rbp + 0x5d0]
lea rdx, [rbp + 0x5a0]
lea rcx, [rbp + 0x5d0]
call fcn.1400500f0
mov r8d, 0xa
lea rdx, [rbp + 0x5d0]
lea rcx, [rbp + 0x5a0]
call fcn.1400532c0
lea r8, [rbp + 0x5d0]
lea rdx, [rbp + 0x5a0]
lea rcx, [rbp + 0x630]
call fcn.1400500f0
mov r8d, 0x14
lea rdx, [rbp + 0x630]
lea rcx, [rbp + 0x5a0]
call fcn.1400532c0
lea r8, [rbp + 0x630]
lea rdx, [rbp + 0x5a0]
lea rcx, [rbp + 0x5a0]
call fcn.1400500f0
mov r8d, 0xa
lea rdx, [rbp + 0x5a0]
lea rcx, [rbp + 0x5a0]
call fcn.1400532c0
lea r8, [rbp + 0x5d0]
lea rdx, [rbp + 0x5a0]
lea rcx, [rbp + 0x5d0]
call fcn.1400500f0
mov r8d, 0x32
lea rdx, [rbp + 0x5d0]
lea rcx, [rbp + 0x5a0]
call fcn.1400532c0
lea r8, [rbp + 0x5d0]
lea rdx, [rbp + 0x5a0]
lea rcx, [rbp + 0x630]
call fcn.1400500f0
mov r8d, 0x64
lea rdx, [rbp + 0x630]
lea rcx, [rbp + 0x5a0]
call fcn.1400532c0
lea r8, [rbp + 0x630]
lea rdx, [rbp + 0x5a0]
lea rcx, [rbp + 0x5a0]
call fcn.1400500f0
mov r8d, 0x32
lea rdx, [rbp + 0x5a0]
lea rcx, [rbp + 0x5a0]
call fcn.1400532c0
lea r8, [rbp + 0x5d0]
lea rdx, [rbp + 0x5a0]
lea rcx, [rbp + 0x5d0]
call fcn.1400500f0
mov r8d, 5
lea rdx, [rbp + 0x5d0]
lea rcx, [rbp + 0x5d0]
call fcn.1400532c0
lea r8, [rbp + 0x690]
lea rdx, [rbp + 0x5d0]
lea rcx, [rbp + 0x6c0]
call fcn.1400500f0
lea r8, [rbp + 0x6c0]
lea rdx, [rbp + 0x600]
lea rcx, [rbp + 0x660]
call fcn.1400500f0
lea rdx, [rbp + 0x660]
mov rcx, r14
call fcn.14004f8e0
mov rdi, qword [rbp + 0x598]
lea rdx, [rbp + 0x560]
mov rax, qword [rbp + 0x588]
mov rcx, qword [rbp + 0x590]
cmp rdi, rdx
jne 0x140052c93
cmp rax, rcx
cmovb rcx, rax
xor eax, eax
rep stosb byte [rdi], al
jmp 0x140052c95
xor eax, eax
mov rcx, qword [rbp + 0x6f0]
xor rcx, rsp
call fcn.140065270
lea r11, [rsp + 0x8a0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret