Function at 0x1404051d0
Capabilities:
Encrypt data using speck

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0xdf8
xor r10d, r10d
mov qword [rsp + 0x370], rcx
mov ebx, r9d
mov rax, qword [0x14194d6d8]
pxor xmm0, xmm0
xor rax, rsp
mov qword [rsp + 0xdf0], rax
mov eax, 0x80
movsxd rdx, edx
movsxd r8, r8d
mov qword [rsp + 0x3f8], rdx
mov qword [rsp + 0x1b8], r8
mov dword [rsp + 0x290], r10d
mov dword [rsp + 0x110], r10d
movdqu xmmword [rsp + rax + 0xce0], xmm0
movdqu xmmword [rsp + rax + 0xcd0], xmm0
movdqu xmmword [rsp + rax + 0xcc0], xmm0
movdqu xmmword [rsp + rax + 0xcb0], xmm0
sub rax, 0x40
jne 0x140405232
mov r13, qword [rsp + 0x3f8]
mov edi, 0x39
mov rbp, qword [rsp + 0xe60]
mov r8d, 1
mov r10, r13
test r13, r13
jle 0x1404054b7
movsxd r12, ebx
shr r12, 0x16
and r12, 7
test ebx, 0x80000000
jne 0x1404052a2
test r12, 1
jne 0x1404052a2
xor r12d, r12d
mov r9d, ebx
xor r11d, r11d
and r9d, 0x80002000
mov eax, ebx
cmp r9d, 0x80002000
mov r9d, r11d
mov esi, ebx
sete r9b
xor edx, edx
and eax, 0x80001000
cmp eax, 0x80001000
mov rax, r12
sete dl
and esi, 0x80000800
cmp esi, 0x80000800
sete r11b
and rax, 2
shl r9d, 0xa
shl edx, 9
shl r11d, 8
or r9d, edx
or r9d, r11d
bts r9d, r12d
test r12, 4
je 0x140405317
mov edx, 0xfa
test rax, rax
mov eax, 0xaaaa
cmovne edx, eax
jmp 0x140405334
test rax, rax
je 0x140405323
mov edx, 0xfa00
jmp 0x140405334
mov edx, 0xa8a8
xor eax, eax
test r12, 1
cmovne edx, eax
mov rax, qword [rsp + 0x370]
movabs rcx, 0x8000000000000000
movabs r15, 0x7fff000000000000
mov rsi, qword [rax + 8]
and rcx, rsi
mov r12, rsi
xor r12, rcx
movups xmm1, xmmword [rax]
movups xmmword [rsp + 0x20], xmm1
movq xmm2, r12
movsd xmm3, qword [rsp + 0x20]
unpcklpd xmm3, xmm2
mov r11, qword [rax]
movups xmmword [rax], xmm3
mov rax, r12
shr rax, 0x20
add rax, 0xffffffffc0010000
mov qword [rsp + 0x28], r12
and r15, rsi
jne 0x1404055a5
mov rax, qword [rsp + 0x20]
or r12, rax
jne 0x1404053c6
bt rsi, 0x3f
jae 0x1404053b6
mov rax, qword [rsp + 0xe80]
mov dword [rax], 0xffffffff
jmp 0x1404053f7
mov rax, qword [rsp + 0xe80]
mov dword [rax], 1
jmp 0x1404053f7
bt rsi, 0x3f
jae 0x1404053dd
mov rax, qword [rsp + 0xe80]
mov dword [rax], 0xfffffffe
jmp 0x1404053eb
mov rax, qword [rsp + 0xe80]
mov dword [rax], 2
test ebx, 0x10000000
je 0x1404054da
test ebx, 0x80
je 0x14040540d
mov qword [rsp + 0x1b8], 1
jmp 0x140405456
test bl, 2
je 0x140405432
mov rax, qword [rsp + 0x1b8]
inc rax
mov qword [rsp + 0x1b8], rax
cmp rax, qword [rsp + 0x3f8]
jle 0x14040544b
mov r13, r10
mov rsi, rbp
lea rax, [r13 - 1]
mov qword [rsp + 0x1b8], rax
mov r12, rsi
test r13, r13
jne 0x140405461
jmp 0x140405491
cmp qword [rsp + 0x1b8], 0
jle 0x1404054b7
dec qword [rsp + 0x1b8]
mov r12, rbp
mov rax, qword [rsp + 0x1b8]
lea r8, [rax + 1]
cmp rax, 0x60
jle 0x14040a18e
mov rcx, rbp
mov edx, 0x30
call fcn.14042ad60
mov rax, qword [rsp + 0x1b8]
lea rsi, [rbp + rax + 1]
mov rdx, qword [rsp + 0xe78]
mov edi, 0xb
test ebx, 0x40000000
mov dword [rdx], 1
mov edx, 0
cmovne edx, edi
jmp 0x140405c0f
mov rdx, qword [rsp + 0xe78]
mov r12, rbp
mov byte [rbp], 0x30
lea rsi, [rbp + 1]
mov dword [rdx], 1
mov edx, 6
jmp 0x140405c0f
mov rax, qword [rsp + 0x370]
mov r15, qword [rax + 8]
mov r14, qword [rax]
movabs rax, 0x7fff000000000000
and rax, r15
shr rax, 0x30
je 0x14040551d
movabs r12, 0x1000000000000
mov r11, r14
or r12, r15
shl r12, 0xf
shr r11, 0x31
shl r14, 0xf
or r12, r11
jmp 0x14040557b
test r15, r15
je 0x140405559
shl r15, 0x10
xor r11d, r11d
test r15, r15
jle 0x140405539
add r15, r15
inc r11
test r15, r15
jg 0x14040552e
mov rax, r11
mov r12, r14
add r11d, 0x10
neg rax
mov ecx, r11d
neg ecx
shr r12, cl
mov ecx, r11d
or r12, r15
shl r14, cl
jmp 0x14040557b
mov r12, r14
xor eax, eax
test r14, r14
mov r14d, 0
jle 0x140405574
add r12, r12
inc rax
test r12, r12
jg 0x140405569
add rax, 0x30
neg rax
shr r12, 0x2f
shl rax, 0x10
movzx r11d, r12w
add rax, 0xffffffffc0010000
mov qword [rsp + 0xd00], r14
or rax, r11
mov qword [rsp + 0xcf8], r11
jmp 0x14040583d
movabs r14, 0x7fff000000000000
cmp r14, r15
jne 0x140405816
xor r15, r12
or r15, r11
jne 0x1404056df
bt rsi, 0x3f
jae 0x1404055db
mov rax, qword [rsp + 0xe80]
mov dword [rax], 0xfffffffc
jmp 0x1404055e9
mov rax, qword [rsp + 0xe80]
mov dword [rax], 4
test r9d, 0x400
je 0x14040560d
test r9d, 0x200
lea rax, str.INFINITY
lea rdi, str.infinity
cmovne rdi, rax
jmp 0x140405614
lea rdi, str.Infinity
mov rsi, rbp
mov dl, byte [rdi]
test dl, dl
je 0x1404056ad
xor eax, eax
inc rax
lea r8, [rbp + rax*8]
mov byte [r8 - 8], dl
lea rsi, [r8 - 7]
mov dl, byte [rdi + rax*8 - 7]
test dl, dl
je 0x1404056ad
mov byte [r8 - 7], dl
lea rsi, [r8 - 6]
mov dl, byte [rdi + rax*8 - 6]
test dl, dl
je 0x1404056ad
mov byte [r8 - 6], dl
lea rsi, [r8 - 5]
mov dl, byte [rdi + rax*8 - 5]
test dl, dl
je 0x1404056ad
mov byte [r8 - 5], dl
lea rsi, [r8 - 4]
mov dl, byte [rdi + rax*8 - 4]
test dl, dl
je 0x1404056ad
mov byte [r8 - 4], dl
lea rsi, [r8 - 3]
mov dl, byte [rdi + rax*8 - 3]
test dl, dl
je 0x1404056ad
mov byte [r8 - 3], dl
lea rsi, [r8 - 2]
mov dl, byte [rdi + rax*8 - 2]
test dl, dl
je 0x1404056ad
mov byte [r8 - 2], dl
lea rsi, [r8 - 1]
mov dl, byte [rdi + rax*8 - 1]
test dl, dl
je 0x1404056ad
mov byte [r8 - 1], dl
mov rsi, r8
mov dl, byte [rdi + rax*8]
test dl, dl
jne 0x140405623
mov rdi, qword [rsp + 0xe78]
and ebx, 0x40000000
mov rdx, rsi
shr ebx, 0x1d
sub rdx, rbp
mov dword [rdi], edx
mov ecx, ebx
mov edx, 4
shl edx, cl
mov r12, qword [rsp + 0xe60]
add edx, 0xfffffffc
jmp 0x140405c0f
test r9d, 0x400
je 0x140405736
bt r12, 0x2f
jb 0x1404056ff
shr rcx, 0x3e
mov edx, 0x10
shr edx, cl
add edx, 0xfffffff6
jmp 0x140405711
mov eax, 0xfffffffb
mov edx, 5
bt rsi, 0x3f
cmovb edx, eax
mov rdi, qword [rsp + 0xe80]
test r9d, 0x200
lea rax, [0x1405a0100]
mov dword [rdi], edx
lea rdi, [0x1405a0104]
cmovne rdi, rax
jmp 0x14040574b
mov rax, qword [rsp + 0xe80]
lea rdi, [0x1405a0108]
mov dword [rax], 0
mov rsi, rbp
mov dl, byte [rdi]
test dl, dl
je 0x1404057e4
xor eax, eax
inc rax
lea r8, [rbp + rax*8]
mov byte [r8 - 8], dl
lea rsi, [r8 - 7]
mov dl, byte [rdi + rax*8 - 7]
test dl, dl
je 0x1404057e4
mov byte [r8 - 7], dl
lea rsi, [r8 - 6]
mov dl, byte [rdi + rax*8 - 6]
test dl, dl
je 0x1404057e4
mov byte [r8 - 6], dl
lea rsi, [r8 - 5]
mov dl, byte [rdi + rax*8 - 5]
test dl, dl
je 0x1404057e4
mov byte [r8 - 5], dl
lea rsi, [r8 - 4]
mov dl, byte [rdi + rax*8 - 4]
test dl, dl
je 0x1404057e4
mov byte [r8 - 4], dl
lea rsi, [r8 - 3]
mov dl, byte [rdi + rax*8 - 3]
test dl, dl
je 0x1404057e4
mov byte [r8 - 3], dl
lea rsi, [r8 - 2]
mov dl, byte [rdi + rax*8 - 2]
test dl, dl
je 0x1404057e4
mov byte [r8 - 2], dl
lea rsi, [r8 - 1]
mov dl, byte [rdi + rax*8 - 1]
test dl, dl
je 0x1404057e4
mov byte [r8 - 1], dl
mov rsi, r8
mov dl, byte [rdi + rax*8]
test dl, dl
jne 0x14040575a
mov rdi, qword [rsp + 0xe78]
mov rdx, rsi
sub rdx, rbp
mov r8d, 0xa
test ebx, 0x40000000
mov dword [rdi], edx
mov edx, 0
mov r12, qword [rsp + 0xe60]
cmovne edx, r8d
jmp 0x140405c0f
bt rsi, 0x3f
jae 0x14040582e
mov r11, qword [rsp + 0xe80]
mov dword [r11], 0xfffffffd
jmp 0x14040583d
mov r11, qword [rsp + 0xe80]
mov dword [r11], 3
shr rsi, 0x3f
mov r11d, r9d
mov dword [rsp + 0x2a0], esi
and r11d, 0x100
mov dword [rsp + 0x298], r11d
je 0x140405ca9
and r9d, 0x200
movabs r10, 0x7fff000000000000
mov r8d, r9d
xor r8d, 0x200
mov rax, qword [rsp + 0x370]
shr r8d, 4
mov rsi, qword [rax + 8]
and r10, rsi
mov rax, qword [rax]
lea edi, [r8 + 0x46]
add r8d, 8
shr r10, 0x30
mov qword [rsp + 0x28], r10
je 0x1404058c5
movabs r10, 0x1000000000000
or r10, rsi
mov rsi, rax
shl r10, 0xf
shr rsi, 0x31
shl rax, 0xf
or r10, rsi
jmp 0x14040593e
test rsi, rsi
je 0x140405908
shl rsi, 0x10
xor ecx, ecx
test rsi, rsi
jle 0x1404058e0
add rsi, rsi
inc rcx
test rsi, rsi
jg 0x1404058d5
mov r11d, ecx
mov r10, rcx
add r11d, 0x10
neg r10
mov ecx, r11d
neg ecx
mov qword [rsp + 0x28], r10
mov r10, rax
shr r10, cl
mov ecx, r11d
or r10, rsi
shl rax, cl
jmp 0x14040593e
mov r10, rax
test rax, rax
mov eax, 0
mov qword [rsp + 0x28], rax
jle 0x14040592d
mov rsi, rax
add r10, r10
inc rsi
test r10, r10
jg 0x14040591d
mov qword [rsp + 0x28], rsi
mov rsi, qword [rsp + 0x28]
add rsi, 0x30
neg rsi
mov qword [rsp + 0x28], rsi
xor esi, esi
test rax, rax
mov qword [rsp + 0xd00], rax
mov eax, esi
setne al
mov r11d, 0x10
mov r15d, 1
mov dword [rsp + 0x30], esi
lea rsi, [rbp + 1]
mov rcx, qword [rsp + 0x3f8]
inc rax
mov qword [rsp + 0xcf8], r10
mov r12, rsi
mov byte [rbp], 0x30
xor r14d, r14d
shr rcx, 1
je 0x14040a29a
mov dword [rsp + 0x198], r8d
mov dword [rsp + 0x1a0], edi
mov dword [rsp + 0x190], ebx
mov r8, rcx
mov rbx, r10
dec r11
shr rbx, 0x3c
mov edi, ebx
shl r10, 4
and edi, 1
cmp ebx, 0xa
jge 0x1404059c0
add ebx, 0x30
jmp 0x1404059cc
lea ecx, [rbx + 0x37]
add ebx, 0x57
test r9d, r9d
cmovne ebx, ecx
mov byte [rbp + r14*2 + 1], bl
lea rbx, [rbp + r14*2]
lea rsi, [rbx + 2]
test r11, r11
jne 0x1404059f9
cmp r15, rax
jae 0x14040a27b
inc r15
mov r11d, 0x10
mov r10, qword [rsp + r15*8 + 0xcf0]
mov rcx, r10
dec r11
shr rcx, 0x3c
mov esi, ecx
mov edi, esi
shl r10, 4
and edi, 1
cmp esi, 0xa
jge 0x140405a18
add esi, 0x30
jmp 0x140405a24
lea ecx, [rsi + 0x37]
add esi, 0x57
test r9d, r9d
cmovne esi, ecx
mov byte [rbp + r14*2 + 2], sil
inc r14
lea rsi, [rbx + 3]
cmp r14, r8
jb 0x14040a257
add r14, r14
mov dword [rsp + 0x30], edi
mov r8d, dword [rsp + 0x198]
mov edi, dword [rsp + 0x1a0]
mov ebx, dword [rsp + 0x190]
cmp r14, qword [rsp + 0x3f8]
jae 0x140405abc
test r11, r11
jne 0x140405a7b
cmp r15, rax
jae 0x140405ac6
inc r15
mov r11d, 0x10
mov r10, qword [rsp + r15*8 + 0xcf0]
mov rcx, r10
dec r11
shr rcx, 0x3c
mov esi, ecx
shl r10, 4
and esi, 1
mov dword [rsp + 0x30], esi
cmp ecx, 0xa
jge 0x140405a9c
add ecx, 0x30
jmp 0x140405ab2
mov qword [rsp + 0x20], rax
lea eax, [rcx + 0x37]
add ecx, 0x57
test r9d, r9d
cmovne ecx, eax
mov rax, qword [rsp + 0x20]
mov byte [r14 + rbp + 1], cl
lea rsi, [rbp + r14 + 2]
test r11, r11
jne 0x140405ad6
cmp r15, rax
jb 0x140405acb
xor r10d, r10d
jmp 0x140405ad6
inc r15
mov r10, qword [rsp + r15*8 + 0xcf0]
xor r9d, r9d
lea r11, [r15 + 1]
cmp r11, rax
ja 0x140405b42
sub rax, r11
xor r14d, r14d
inc rax
mov r11d, 1
mov rcx, rax
shr rcx, 1
je 0x140405b2c
mov dword [rsp + 0x190], ebx
lea r11, [rsp + r15*8 + 0xcf8]
mov rbx, r14
or r9, qword [rbx + r11]
inc r14
or r9, qword [rbx + r11 + 8]
add rbx, 0x10
cmp r14, rcx
jb 0x140405b0b
mov ebx, dword [rsp + 0x190]
lea r11, [r14 + r14 + 1]
lea r14, [r11 - 1]
cmp r14, rax
jae 0x140405b42
lea r11, [r11 + r15 + 1]
or r9, qword [rsp + r11*8 + 0xce8]
mov r15, qword [rsp + 0xe78]
mov r11d, dword [rsp + 0x30]
add r11d, r11d
mov r14, qword [rsp + 0x28]
add r14, 0xffffffffffffc002
mov dword [r15], r14d
mov r14d, dword [rsp + 0x2a0]
lea r11d, [r11 + r14*8]
mov r14, r10
shr r14, 0x3f
add r11d, r14d
xor r14d, r14d
add r10, r10
mov r10d, r14d
setne r10b
or r9, r10
setne r14b
lea ecx, [r11 + r14*4]
shr edx, cl
test dl, 1
je 0x140405bc3
movsx edx, byte [rsi - 1]
cmp edx, edi
jne 0x140405ba9
dec rsi
movsx edx, byte [rsi - 1]
cmp edx, edi
je 0x140405b9e
mov edi, 1
cmp edx, 0x39
cmove edi, r8d
add edx, edi
mov byte [rsi - 1], dl
cmp rsi, r12
je 0x14040a21b
test ebx, 0x80
je 0x140405bdc
cmp byte [rsi - 1], 0x30
jne 0x140405c0d
dec rsi
cmp byte [rsi - 1], 0x30
je 0x140405bd1
jmp 0x140405c0d
sub r13, rsi
add r13, r12
dec r13d
movsxd r13, r13d
test r13, r13
jl 0x140405c0d
lea r8, [r13 + 1]
cmp r13, 0x60
jle 0x14040a1d6
mov rcx, rsi
mov edx, 0x30
call fcn.14042ad60
lea rsi, [rsi + r13 + 1]
xor edx, edx
mov rdi, qword [rsp + 0xe68]
mov byte [rsi], 0
test rdi, rdi
je 0x140405c27
mov rbx, r12
sub rbx, rbp
mov dword [rdi], ebx
mov rbx, qword [rsp + 0xe70]
test rbx, rbx
je 0x140405c3c
neg rbp
add rbp, rsi
mov dword [rbx], ebp
mov rbx, r12
test r12, r12
je 0x140405c5a
cmp rbx, rsi
jae 0x140405c5a
mov bpl, byte [rbx]
inc rbx
cmp bpl, 0x30
jne 0x140405c5f
test rbx, rbx
jne 0x140405c44
mov edx, 0xb
mov rcx, qword [rsp + 0xe88]
test rcx, rcx
je 0x140405c6e
mov dword [rcx], edx
mov rcx, qword [rsp + 0xdf0]
mov qword [rsp + 0xdf0], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x14040a1d1
mov rax, r12
add rsp, 0xdf8
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
xor esi, esi
test rax, rax
mov r12d, r9d
lea r11, [rbp + 1]
setl sil
and r12d, 0x41
add rsi, 0x4d104d42
imul rax, rsi
sar rax, 0x30
mov esi, ebx
mov qword [rsp + 0x278], r11
mov r11d, r9d
mov dword [rsp + 0x198], r8d
inc rax
mov qword [rsp + 0x1a8], r14
and esi, 2
mov qword [rsp + 0x1b0], r15
and r11d, 2
mov qword [rsp + 0x258], rcx
and r9d, 0x14
mov dword [rsp + 0x280], edx
mov dword [rsp + 0x1a0], edi
mov qword [rsp + 0x368], rbp
mov dword [rsp + 0x190], ebx
mov r8, qword [rsp + 0x1b8]
jmp 0x140405d7b
mov rax, qword [rsp + 0x238]
neg rax
mov r9d, dword [rsp + 0x160]
inc rax
mov r12d, dword [rsp + 0x168]
mov r11d, dword [rsp + 0x170]
mov esi, dword [rsp + 0x178]
mov r8, qword [rsp + 0x1b8]
mov r10, qword [rsp + 0x180]
mov r13, qword [rsp + 0x288]
mov qword [rsp + 0x258], rdi
mov edi, eax
test esi, esi
je 0x140405de9
test r8, r8
jge 0x140405d9c
neg r8d
mov dword [rsp + 0x110], r8d
mov dword [rsp + 0x290], r8d
xor r8d, r8d
lea r13, [rax + r8]
cmp r13, qword [rsp + 0x3f8]
jle 0x140405de0
sub r13, qword [rsp + 0x3f8]
mov rdx, qword [rsp + 0xe78]
neg r13d
mov ecx, dword [rsp + 0x290]
add r13d, dword [rsp + 0x110]
test ecx, ecx
mov dword [rdx], edi
cmovne ecx, r13d
mov r13, r10
mov dword [rsp + 0x290], ecx
jmp 0x140405df3
test r13, r13
jle 0x14040a2ae
mov rdx, qword [rsp + 0xe78]
mov dword [rdx], edi
neg rax
jne 0x140405f25
mov rdx, qword [rsp + 0x370]
movabs rbx, 0x7fff000000000000
xor ebp, ebp
mov edi, 0x71
mov r15, qword [rdx + 8]
and rbx, r15
mov r14, qword [rdx]
shr rbx, 0x30
je 0x140405e46
movabs rdx, 0x1000000000000
mov rcx, r14
or rdx, r15
shl rdx, 0xf
shr rcx, 0x31
shl r14, 0xf
or rdx, rcx
jmp 0x140405ea4
test r15, r15
je 0x140405e82
shl r15, 0x10
xor ecx, ecx
test r15, r15
jle 0x140405e61
add r15, r15
inc rcx
test r15, r15
jg 0x140405e56
mov rbx, rcx
mov rdx, r14
add ecx, 0x10
neg rbx
mov dword [rsp + 0x48], ecx
neg ecx
shr rdx, cl
mov ecx, dword [rsp + 0x48]
or rdx, r15
shl r14, cl
jmp 0x140405ea4
mov rdx, r14
xor ebx, ebx
test r14, r14
mov r14d, 0
jle 0x140405e9d
add rdx, rdx
inc rbx
test rdx, rdx
jg 0x140405e92
add rbx, 0x30
neg rbx
test r14, r14
mov qword [rsp + 0xcf8], rdx
mov edx, 0
mov qword [rsp + 0x268], rdi
setne dl
add rbx, 0xffffffffffffc002
mov qword [rsp + 0xd00], r14
inc rdx
mov qword [rsp + 0x270], rbp
mov qword [rsp + 0x238], rax
mov dword [rsp + 0x160], r9d
mov dword [rsp + 0x168], r12d
mov dword [rsp + 0x170], r11d
mov dword [rsp + 0x178], esi
mov qword [rsp + 0x1b8], r8
mov qword [rsp + 0x180], r10
mov qword [rsp + 0x288], r13
mov rdi, qword [rsp + 0x258]
jmp 0x140409b9a
mov edx, 0x80
movdqu xmmword [rsp + rdx + 0xae0], xmm0
movdqu xmmword [rsp + rdx + 0xad0], xmm0
movdqu xmmword [rsp + rdx + 0xac0], xmm0
movdqu xmmword [rsp + rdx + 0xab0], xmm0
sub rdx, 0x40
jne 0x140405f2a
cmp rax, 0xfffffffffffffeaa
jl 0x140405f64
cmp rax, 0x159
jle 0x140405f6b
mov edi, 0x80
jmp 0x140405f7d
mov edi, 0x40
mov edx, 0x80
cmp r13, 0x11
cmovg rdi, rdx
xor ebp, ebp
cmp rdi, 0x80
mov qword [rsp + 0x268], rdi
setne bpl
mov qword [rsp + 0x270], rbp
mov qword [rsp + 0x238], rax
mov dword [rsp + 0x160], r9d
mov dword [rsp + 0x168], r12d
mov dword [rsp + 0x170], r11d
mov dword [rsp + 0x178], esi
mov qword [rsp + 0x1b8], r8
mov qword [rsp + 0x180], r10
mov qword [rsp + 0x288], r13
mov rdi, qword [rsp + 0x258]
mov rax, qword [rsp + 0x370]
movabs rsi, 0x7fff000000000000
mov rdx, qword [rax + 8]
and rsi, rdx
mov rax, qword [rax]
shr rsi, 0x30
je 0x140406024
movabs rbx, 0x1000000000000
or rbx, rdx
mov rdx, rax
shl rbx, 0xf
shr rdx, 0x31
shl rax, 0xf
or rbx, rdx
jmp 0x14040607f
test rdx, rdx
je 0x14040605e
shl rdx, 0x10
xor ecx, ecx
test rdx, rdx
jle 0x14040603f
add rdx, rdx
inc rcx
test rdx, rdx
jg 0x140406034
mov ebp, ecx
mov rsi, rcx
add ebp, 0x10
mov rbx, rax
mov ecx, ebp
neg rsi
neg ecx
shr rbx, cl
mov ecx, ebp
or rbx, rdx
shl rax, cl
jmp 0x14040607f
mov rbx, rax
xor esi, esi
test rax, rax
mov eax, 0
jle 0x140406078
add rbx, rbx
inc rsi
test rbx, rbx
jg 0x14040606d
add rsi, 0x30
neg rsi
test rax, rax
mov qword [rsp + 0xd00], rax
mov eax, 0
mov qword [rsp + 0xcf8], rbx
setne al
mov dword [rsp + 0x248], eax
mov qword [rsp + 0x420], rax
lea rdx, [rax + 1]
mov qword [rsp + 0x240], rdx
mov eax, 0x80
movdqu xmmword [rsp + rax + 0x860], xmm0
movdqu xmmword [rsp + rax + 0x850], xmm0
movdqu xmmword [rsp + rax + 0x840], xmm0
movdqu xmmword [rsp + rax + 0x830], xmm0
sub rax, 0x40
jne 0x1404060ba
mov rdx, qword [rsp + 0x238]
cmp qword [rsp + 0x268], 0x40
jne 0x1404066f1
mov rax, rdx
mov ebp, 1
lea rdx, [rax + 0x2f]
cmp rdx, 0x5e
ja 0x14040614e
mov rdx, rax
lea rax, [0x140000000]
mov rcx, qword [rax + rdx*8 + 0x5a0ad8]
movsx rbx, word [rax + rdx*2 + 0x5a0cbe]
mov qword [rsp + 0xaf8], rcx
test rcx, rcx
jne 0x14040a363
dec rbp
mov r8, qword [rsp + rbp*8 + 0xaf0]
test r8, r8
je 0x140406139
jmp 0x14040946c
cmp qword [rsp + 0x238], 0
js 0x14040a385
mov r10, rax
mov rax, r10
shr rax, 3
lea r12, [0x140000000]
movsxd rbx, eax
movzx edx, word [r12 + rbx*2 + 0x5a0ea2]
lea rcx, [rbx + 1]
shr edx, 5
cmp rdx, r10
cmovle rbx, rcx
movzx r9d, word [r12 + rbx*2 + 0x5a0ea0]
mov r8d, r9d
shr r9d, 5
and r8d, 0x1f
movsx r11, word [r12 + r8*2 + 0x5a0f18]
neg r9
add r9, r10
movsxd rbx, r9d
mov qword [rsp + 0x158], r11
mov rcx, qword [r12 + r8*8 + 0x5a0e20]
lea rdx, [0x140000000]
mov qword [rsp + 0x878], rcx
movsx rax, word [rdx + rbx*2 + 0x5a0cbe]
mov rbx, qword [rdx + rbx*8 + 0x5a0ad8]
mov qword [rsp + 0xaf8], rbx
test rbx, rbx
jne 0x14040a378
dec rbp
mov rdx, qword [rsp + rbp*8 + 0xaf0]
test rdx, rdx
je 0x1404061ef
mov r10d, edx
mov r13, rcx
shr r13, 0x20
mov r11, rdx
mov r9, r10
xor r8d, r8d
shr r11, 0x20
mov r14d, ebp
imul r9, r13
mov r12d, ecx
mov rbx, r11
imul r10, r12
imul rbx, r13
imul r11, r12
mov r15, r9
shl r15, 0x20
shr r9, 0x20
add r10, r15
add rbx, r9
mov r9, r11
shl r9, 0x20
cmp r10, r15
mov r15d, r8d
setb r15b
add r10, r9
cmp r10, r9
movsxd rdx, ebp
setb r8b
shr r11, 0x20
add rbx, r15
add rbx, r11
add rbx, r8
lea rcx, [rsp + rdx*8 + 0x8f0]
dec r14d
mov qword [rcx + 8], r10
lea r10, [rsp + rdx*8 + 0x770]
mov qword [rcx], rbx
mov rbx, qword [rsp + 0x1a8]
cmovns rbx, rdx
mov qword [rsp + 0x1a8], rbx
mov qword [r10], 0
js 0x140406375
movsxd r9, dword [rsp + 0x1a8]
neg r9
dec r9
neg r9
dec r9
cmp r9, 2
jl 0x14040a370
sub rdx, qword [rsp + 0x1a8]
lea rbx, [rsp + rdx*8 + 0x8f0]
mov edx, 1
and rbx, 0xf
cmovne rbx, rdx
lea r8, [rbx + 2]
cmp r9, r8
jl 0x14040a370
mov r11, qword [rsp + 0x1a8]
mov edx, ebx
mov r8d, r9d
neg edx
add edx, r8d
mov r14, r10
and edx, 1
shl r11, 3
sub r14, r11
neg r11
sub r8d, edx
add r11, rcx
movsxd r8, r8d
xor edx, edx
test rbx, rbx
jbe 0x140406333
xor r15d, r15d
mov qword [r14 + rdx*8], r15
mov qword [r11 + rdx*8], r15
inc rdx
cmp rdx, rbx
jb 0x140406323
movdqu xmmword [r14 + rbx*8], xmm0
movdqu xmmword [r11 + rbx*8], xmm0
add rbx, 2
cmp rbx, r8
jb 0x140406333
cmp r8, r9
jae 0x140406375
mov rdx, qword [rsp + 0x1a8]
lea rbx, [rdx*8]
xor edx, edx
sub r10, rbx
sub rcx, rbx
mov qword [r10 + r8*8], rdx
mov qword [rcx + r8*8], rdx
inc r8
cmp r8, r9
jb 0x140406365
xor r8d, r8d
lea rbx, [rbp - 1]
movsxd rbx, ebx
xor r9d, r9d
test rbx, rbx
je 0x14040648d
mov qword [rsp + 0x210], rbp
lea r11, [rsp + rbx*8 + 0x8f0]
mov rcx, qword [r11 + 8]
lea r10, [rsp + rbx*8 + 0xaf0]
mov qword [rsp + 0xf0], rax
lea rdx, [rsp + rbx*8 + 0x770]
mov qword [rsp + 0x200], rsi
xor r14d, r14d
mov qword [rsp + 0x258], rdi
mov rax, qword [r10 + r9*8]
mov rsi, r13
mov edi, eax
mov r15, rax
imul rsi, rdi
imul rdi, r12
mov rbp, rsi
mov eax, r14d
shl rbp, 0x20
inc r8
add rdi, rbp
shr r15, 0x20
cmp rdi, rbp
mov rbp, r12
setb al
imul rbp, r15
imul r15, r13
shr rsi, 0x20
add r15, rsi
mov rsi, rbp
shl rsi, 0x20
add rdi, rsi
cmp rdi, rsi
mov esi, r14d
setb sil
add rcx, rdi
cmp rcx, rdi
mov edi, r14d
mov qword [r11 + r9*8 + 8], rcx
mov ecx, r14d
setb cl
shr rbp, 0x20
add rax, rbp
add r15, rax
add rsi, rcx
add r15, rsi
mov rcx, qword [r11 + r9*8]
add rcx, r15
cmp rcx, r15
setb dil
add qword [rdx + r9*8 - 8], rdi
dec r9
cmp r8, rbx
jb 0x1404063ca
shl r8, 3
neg r8
mov rbp, qword [rsp + 0x210]
mov rax, qword [rsp + 0xf0]
mov rsi, qword [rsp + 0x200]
mov rdi, qword [rsp + 0x258]
mov qword [r8 + r11 + 8], rcx
mov rbx, qword [rsp + 0x158]
lea r14, [rbp + 1]
mov r13d, ebp
lea r15, [rsp + rbp*8 + 0xaf8]
mov rdx, qword [rsp + r14*8 + 0x8f0]
xor ecx, ecx
mov qword [r15], rdx
add rbx, rax
test r13d, r13d
je 0x140406582
mov r10d, r13d
xor r8d, r8d
mov r11d, 1
xor r9d, r9d
shr r10d, 1
je 0x140406550
movsxd rdx, ebp
mov qword [rsp + 0x200], rsi
xor esi, esi
mov qword [rsp + 0x258], rdi
lea r11, [rsp + rdx*8 + 0xaf0]
lea r12, [rsp + rdx*8 + 0x8f0]
lea rdx, [rsp + rdx*8 + 0x770]
add rcx, qword [r9 + rdx]
inc r8
mov rdi, qword [r9 + r12]
add rdi, rcx
cmp rdi, rcx
mov ecx, esi
mov qword [r9 + r11], rdi
setb cl
add rcx, qword [r9 + rdx - 8]
mov rdi, qword [r9 + r12 - 8]
add rdi, rcx
cmp rdi, rcx
mov ecx, esi
mov qword [r9 + r11 - 8], rdi
setb cl
add r9, 0xfffffffffffffff0
cmp r8, r10
jb 0x1404064fe
mov rsi, qword [rsp + 0x200]
lea r11d, [r8 + r8 + 1]
mov rdi, qword [rsp + 0x258]
lea edx, [r11 - 1]
cmp edx, r13d
jae 0x14040657f
movsxd r11, r11d
movsxd rdx, ebp
sub rdx, r11
add rcx, qword [rsp + rdx*8 + 0x778]
add rcx, qword [rsp + rdx*8 + 0x8f8]
mov qword [rsp + rdx*8 + 0xaf8], rcx
mov rdx, qword [r15]
jmp 0x140406582
mov rdx, qword [r15]
test rdx, rdx
jne 0x14040659c
dec r14
lea r15, [rsp + r14*8 + 0xaf0]
cmp qword [r15], 0
je 0x140406587
lea rbp, [r14 - 1]
mov rdx, qword [rsp + 0xaf8]
test rdx, rdx
jle 0x140406672
mov rcx, qword [rsp + 0x158]
add rdx, rdx
mov qword [rsp + 0xaf8], rdx
lea rbx, [rcx + rax - 1]
cmp r14, 2
jb 0x140406672
xor r8d, r8d
lea rcx, [r14 - 1]
mov eax, 1
shr rcx, 1
je 0x140406642
movsxd r11, r8d
inc r8d
shl r11, 4
mov r10, qword [rsp + r11 + 0xb00]
mov rax, r10
shr rax, 0x3f
add r10, r10
or rdx, rax
mov qword [rsp + r11 + 0xaf8], rdx
mov rdx, qword [rsp + r11 + 0xb08]
mov r9, rdx
shr r9, 0x3f
add rdx, rdx
or r10, r9
mov qword [rsp + r11 + 0xb00], r10
cmp r8, rcx
jb 0x1404065e0
lea eax, [r8 + r8]
movsxd r8, r8d
shl r8, 4
movsxd rax, eax
inc rax
mov qword [rsp + r8 + 0xaf8], rdx
dec rax
lea rcx, [r14 - 1]
mov edx, eax
cmp rdx, rcx
jae 0x140406672
mov rcx, qword [rsp + rax*8 + 0xb00]
mov rdx, rcx
shr rdx, 0x3f
add rcx, rcx
or qword [rsp + rax*8 + 0xaf8], rdx
mov qword [rsp + rax*8 + 0xb00], rcx
cmp qword [r15], 0
cmovne rbp, r14
cmp rbp, 1
jb 0x140409464
mov rax, qword [rsp + 0xb00]
mov ebp, 1
shr rax, 0x3f
mov rdx, qword [rsp + 0xaf8]
add rdx, rax
cmp rdx, rax
jae 0x1404066cb
movabs r8, 0x8000000000000000
mov qword [rsp + 0xaf0], 0
inc rbx
mov qword [rsp + 0xaf8], r8
jmp 0x14040946c
mov qword [rsp + 0xaf8], rdx
test rdx, rdx
jne 0x14040a363
dec rbp
mov r8, qword [rsp + rbp*8 + 0xaf0]
test r8, r8
je 0x1404066dc
jmp 0x14040946c
mov eax, 0x80
movdqu xmmword [rsp + rax + 0x960], xmm0
movdqu xmmword [rsp + rax + 0x950], xmm0
movdqu xmmword [rsp + rax + 0x940], xmm0
movdqu xmmword [rsp + rax + 0x930], xmm0
sub rax, 0x40
jne 0x1404066f6
xor ecx, ecx
mov eax, 2
cmp qword [rsp + 0x238], 0xfffffffffffffdea
jge 0x140407080
mov r12, qword [rsp + 0x268]
xor r8d, r8d
shr r12, 6
mov r9d, 0x1000
xor ebx, ebx
mov ebp, 6
cmp qword [rsp + 0x238], 0xfffffffffffff000
lea r11, [r12 - 1]
lea r10, [rsp + r12*8 + 0x970]
jle 0x1404067bd
mov qword [rsp + 0x1e8], r11
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x1d0], r8
mov dword [rsp + 0x1d8], r9d
mov qword [rsp + 0x1e0], r10
mov qword [rsp + 0x1f0], r12
mov qword [rsp + 0x200], rsi
mov qword [rsp + 0x258], rdi
mov r11, qword [rsp + 0x1c8]
jmp 0x140407019
mov qword [rsp + 0x1e8], r11
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x1d0], r8
mov dword [rsp + 0x1d8], r9d
mov qword [rsp + 0x1e0], r10
mov qword [rsp + 0x1f0], r12
mov qword [rsp + 0x200], rsi
mov qword [rsp + 0x258], rdi
mov r11, qword [rsp + 0x1c8]
movsxd rax, dword [rsp + 0x1d8]
add rdx, rax
test rcx, rcx
je 0x140406fe4
lea r8, [0x140000000]
xor r14d, r14d
mov qword [rsp + 0x128], rbp
mov r9, qword [rsp + rcx*8 + 0x970]
mov rsi, r9
mov eax, r9d
movsx r12, word [r8 + rbp + 0x5a091e]
mov r10, rax
mov rbp, qword [r8 + rbx + 0x5a0630]
mov r13, rbp
shr r13, 0x20
imul r10, r13
mov qword [rsp + 0x1c8], r11
mov r11, rax
mov r15d, ebp
mov rdi, r10
imul r11, r15
shl rdi, 0x20
shr rsi, 0x20
add r11, rdi
cmp r11, rdi
mov rdi, rsi
mov qword [rsp + 0x380], r15
mov qword [rsp + 0x880], rbp
lea rbp, [rcx + 1]
mov qword [rsp + 0x130], r12
setb r14b
imul rdi, r13
imul r15, rsi
shr r10, 0x20
mov r12, qword [r8 + rbx + 0x5a0638]
add rdi, r10
movsxd r8, ebp
mov r10, r15
shl r10, 0x20
add r11, r10
cmp r11, r10
mov qword [rsp + 0x878], r12
lea r9, [rsp + r8*8 + 0x6f0]
mov qword [r9 + 8], r11
lea r10, [rsp + r8*8 + 0x670]
mov r11d, 0
mov qword [r10], r11
mov qword [r10 - 8], r11
mov r11d, r12d
mov qword [rsp + 0x390], r11
mov qword [rsp + 0x388], r13
mov r13d, 0
setb r13b
add rdi, r14
shr r12, 0x20
mov r14, rax
imul r14, r12
imul rax, r11
imul r11, rsi
imul rsi, r12
shr r15, 0x20
add rdi, r15
mov r15, r14
shr r14, 0x20
shl r15, 0x20
add rsi, r14
mov r14, r11
add rax, r15
shl r14, 0x20
add rdi, r13
xor r13d, r13d
cmp rax, r15
setb r13b
xor r15d, r15d
add rax, r14
cmp rax, r14
setb r15b
add rdi, rax
cmp rdi, rax
mov eax, 0
setb al
shr r11, 0x20
add r13, r11
add rsi, r13
add r15, rax
add rsi, r15
mov qword [r9], rdi
add ebp, 0xfffffffe
mov qword [r9 - 8], rsi
mov r11, qword [rsp + 0x1c8]
mov rbp, qword [rsp + 0x128]
js 0x140406a6b
lea rax, [r8 - 1]
movsxd rsi, eax
neg rsi
dec rsi
neg rsi
dec rsi
cmp rsi, 2
jl 0x14040a3ee
sub r8, rax
mov edi, 1
lea r15, [rsp + r8*8 + 0x6e8]
and r15, 0xf
cmovne r15, rdi
lea r8, [r15 + 2]
cmp rsi, r8
jl 0x14040a3ee
mov edi, r15d
mov r14d, esi
neg edi
lea r13, [rax*8]
add edi, r14d
mov r8, r10
and edi, 1
sub r8, r13
neg r13
sub r14d, edi
add r13, r9
xor edi, edi
movsxd r14, r14d
test r15, r15
jbe 0x140406a31
mov qword [rsp + 0x120], rcx
xor ecx, ecx
mov qword [r8 + rdi*8 - 8], rcx
mov qword [r13 + rdi*8 - 8], rcx
inc rdi
cmp rdi, r15
jb 0x140406a17
mov rcx, qword [rsp + 0x120]
movdqu xmmword [r8 + r15*8 - 8], xmm0
movdqu xmmword [r13 + r15*8 - 8], xmm0
add r15, 2
cmp r15, r14
jb 0x140406a31
cmp r14, rsi
jae 0x140406a6b
shl rax, 3
sub r10, rax
sub r9, rax
xor eax, eax
mov qword [r10 + r14*8 - 8], rax
mov qword [r9 + r14*8 - 8], rax
inc r14
cmp r14, rsi
jb 0x140406a59
xor r14d, r14d
lea rax, [rcx - 1]
mov r15d, eax
xor r9d, r9d
test r15d, r15d
je 0x140406cc3
movsxd r13, eax
mov qword [rsp + 0x3a0], r13
mov qword [rsp + 0x1c8], r11
mov dword [rsp + 0xc8], r15d
mov qword [rsp + 0x3a8], r12
lea r10, [rsp + r13*8 + 0x6f0]
mov r8, qword [r10 + 8]
lea rsi, [rsp + r13*8 + 0x670]
mov rdi, qword [r10 + 0x10]
lea r13, [rsp + r13*8 + 0x970]
mov rax, qword [rsi]
mov qword [rsp + 0x398], r13
mov qword [rsp + 0x128], rbp
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x120], rcx
mov rbp, qword [rsp + 0x398]
inc r14
mov rbx, qword [rsp + 0x388]
mov rcx, rbx
mov qword [rsp + 0x3b0], r14
xor r13d, r13d
mov r11, qword [rbp + r9*8]
mov rbp, r11
mov r11d, r11d
imul rcx, r11
mov r14, qword [rsp + 0x380]
mov r12, r14
imul r12, r11
shr rbp, 0x20
mov rdx, rcx
imul r14, rbp
imul rbx, rbp
shl rdx, 0x20
mov r15, r14
add r12, rdx
cmp r12, rdx
mov edx, r13d
setb dl
shr rcx, 0x20
add rbx, rcx
shr r14, 0x20
shl r15, 0x20
add rdx, r14
add r12, r15
add rbx, rdx
mov rdx, qword [rsp + 0x3a8]
mov rcx, rdx
cmp r12, r15
mov r15d, r13d
setb r15b
xor r14d, r14d
add rdi, r12
imul rcx, r11
cmp rdi, r12
mov r12, qword [rsp + 0x390]
mov qword [r10 + r9*8 + 0x10], rdi
mov edi, r13d
setb dil
imul r11, r12
imul r12, rbp
imul rbp, rdx
xor edx, edx
add r15, rdi
mov rdi, rcx
add rbx, r15
add r8, rbx
cmp r8, rbx
setb r14b
shl rdi, 0x20
add r11, rdi
add rax, r14
xor r14d, r14d
cmp r11, rdi
mov rdi, r12
setb r14b
shl rdi, 0x20
add r11, rdi
cmp r11, rdi
setb dl
shr rcx, 0x20
lea rdi, [r11 + r8]
xor r8d, r8d
cmp rdi, r11
setb r8b
add rbp, rcx
shr r12, 0x20
add r14, r12
add rbp, r14
add rdx, r8
add rbp, rdx
mov r8, qword [r10 + r9*8]
add r8, rbp
cmp r8, rbp
mov qword [rsi + r9*8], rax
setb r13b
mov eax, r13d
mov r14, qword [rsp + 0x3b0]
add rax, qword [rsi + r9*8 - 8]
dec r9
cmp r14, qword [rsp + 0x3a0]
jb 0x140406aef
shl r14, 3
sub rsi, r14
sub r10, r14
mov r15d, dword [rsp + 0xc8]
mov r11, qword [rsp + 0x1c8]
mov rbp, qword [rsp + 0x128]
mov qword [rsi], rax
mov eax, r15d
xor esi, esi
mov rbx, qword [rsp + 0x100]
mov rdx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x120]
mov qword [r10 + 8], r8
mov qword [r10 + 0x10], rdi
mov edi, 1
shr eax, 3
je 0x140406c9c
inc esi
cmp esi, eax
jb 0x140406c8f
lea edi, [rsi*8 + 1]
cmp edi, r15d
ja 0x140406cc3
dec edi
lea rsi, [0x140000000]
sub r15d, edi
dec r15d
movzx eax, byte [rsi + r15 + 0x5a00f0]
lea rax, [rsi + rax + 0x406cc3]
jmp rax
add r11, qword [rsp + 0x130]
lea r15, [rcx + 1]
mov r12d, r15d
lea r14, [rcx + 2]
mov rax, qword [rsp + r14*8 + 0x6f0]
lea r13, [rsp + rcx*8 + 0x980]
mov qword [r13], rax
xor r9d, r9d
test r12d, r12d
je 0x140406df1
mov edi, r12d
xor r10d, r10d
mov eax, 1
xor r8d, r8d
shr edi, 1
je 0x140406dbe
movsxd rax, r15d
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0x120], rcx
lea rsi, [rsp + rax*8 + 0x970]
mov qword [rsp + 0x108], rsi
lea rsi, [rsp + rax*8 + 0x6f0]
mov rdx, qword [rsp + 0x108]
lea rax, [rsp + rax*8 + 0x670]
xor ecx, ecx
nop dword [rax + rax]
nop dword [rax]
add r9, qword [r8 + rax]
inc r10
mov rbx, qword [r8 + rsi]
add rbx, r9
cmp rbx, r9
mov r9d, ecx
mov qword [r8 + rdx], rbx
setb r9b
add r9, qword [r8 + rax - 8]
mov rbx, qword [r8 + rsi - 8]
add rbx, r9
cmp rbx, r9
mov r9d, ecx
mov qword [r8 + rdx - 8], rbx
setb r9b
add r8, 0xfffffffffffffff0
cmp r10, rdi
jb 0x140406d60
mov rbx, qword [rsp + 0x100]
lea eax, [r10 + r10 + 1]
mov rdx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x120]
lea esi, [rax - 1]
cmp esi, r12d
jae 0x140406ded
movsxd rax, eax
movsxd rsi, r15d
sub rsi, rax
add r9, qword [rsp + rsi*8 + 0x678]
add r9, qword [rsp + rsi*8 + 0x6f8]
mov qword [rsp + rsi*8 + 0x978], r9
mov rax, qword [r13]
jmp 0x140406df1
mov rax, qword [r13]
test rax, rax
jne 0x140406e1c
xor esi, esi
xor eax, eax
add rax, 0xfffffffffffffff8
inc rsi
cmp qword [rax + r13], 0
je 0x140406dfa
neg rsi
lea r14, [rsi + rcx + 2]
lea r13, [rsp + r14*8 + 0x970]
lea r15, [r14 - 1]
mov rsi, qword [rsp + 0x978]
test rsi, rsi
jle 0x140406ef0
add rsi, rsi
dec r11
mov qword [rsp + 0x978], rsi
cmp r14, 2
jb 0x140406ef0
xor ecx, ecx
lea rdi, [r14 - 1]
mov eax, 1
shr rdi, 1
je 0x140406ec0
nop dword [rax]
nop dword [rax]
movsxd r10, ecx
inc ecx
shl r10, 4
mov r9, qword [rsp + r10 + 0x980]
mov rax, r9
shr rax, 0x3f
add r9, r9
or rsi, rax
mov qword [rsp + r10 + 0x978], rsi
mov rsi, qword [rsp + r10 + 0x988]
mov r8, rsi
shr r8, 0x3f
add rsi, rsi
or r9, r8
mov qword [rsp + r10 + 0x980], r9
cmp rcx, rdi
jb 0x140406e60
lea eax, [rcx + rcx]
movsxd rcx, ecx
shl rcx, 4
movsxd rax, eax
inc rax
mov qword [rsp + rcx + 0x978], rsi
dec rax
lea rsi, [r14 - 1]
mov ecx, eax
cmp rcx, rsi
jae 0x140406ef0
mov rsi, qword [rsp + rax*8 + 0x980]
mov rcx, rsi
shr rcx, 0x3f
add rsi, rsi
or qword [rsp + rax*8 + 0x978], rcx
mov qword [rsp + rax*8 + 0x980], rsi
cmp qword [r13], 0
mov rcx, r14
cmove rcx, r15
cmp rcx, qword [rsp + 0x1f0]
jb 0x140407019
mov rcx, qword [rsp + 0x1f0]
mov rax, rcx
mov rsi, qword [rsp + rax*8 + 0x978]
shr rsi, 0x3f
mov rdi, qword [rsp + rax*8 + 0x970]
add rdi, rsi
cmp rdi, rsi
jae 0x140406fa8
mov rcx, qword [rsp + 0x1e8]
mov qword [rsp + rax*8 + 0x970], rdi
lea rsi, [rsp + rax*8 + 0x968]
mov qword [rsp + 0x970], 0
cmp qword [rsi], 0xffffffffffffffff
jne 0x140406f7d
xor ecx, ecx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rcx
cmp qword [rax + rsi], 0xffffffffffffffff
je 0x140406f5f
neg rcx
mov rax, qword [rsp + 0x1f0]
lea rcx, [rcx + rax - 1]
test rcx, rcx
jne 0x140406f9e
movabs rax, 0x8000000000000000
inc r11
mov qword [rsp + 0x978], rax
mov ecx, 1
jmp 0x140407019
inc qword [rsp + rcx*8 + 0x970]
jmp 0x140407019
mov qword [rsp + rax*8 + 0x970], rdi
test rdi, rdi
jne 0x140407019
xor ecx, ecx
mov rsi, qword [rsp + 0x1e0]
xor eax, eax
add rax, 0xfffffffffffffff8
inc rcx
cmp qword [rax + rsi], 0
je 0x140406fc1
neg rcx
mov qword [rsp + 0x1e0], rsi
add rcx, qword [rsp + 0x1f0]
jmp 0x140407019
lea rsi, [0x140000000]
mov ecx, 2
mov rax, qword [rsi + rbx + 0x5a0638]
mov rdi, qword [rsi + rbx + 0x5a0630]
movsx r11, word [rsi + rbp + 0x5a091e]
mov qword [rsp + 0x978], rax
mov qword [rsp + 0x980], rdi
mov rsi, qword [rsp + 0x1d0]
mov edi, dword [rsp + 0x1d8]
inc rsi
add rbp, 0xfffffffffffffffe
sar edi, 1
add rbx, 0xfffffffffffffff0
cmp rsi, 4
jae 0x14040705b
mov eax, edi
neg eax
movsxd rax, eax
cmp rdx, rax
jg 0x140407028
mov qword [rsp + 0x1d0], rsi
mov dword [rsp + 0x1d8], edi
jmp 0x140406805
mov qword [rsp + 0x1c8], r11
mov rax, qword [rsp + 0x1c0]
mov rsi, qword [rsp + 0x200]
mov rdi, qword [rsp + 0x258]
jmp 0x140407a5a
cmp qword [rsp + 0x238], 0x216
jle 0x140407a5a
xor ebx, ebx
mov ebp, 0x1000
xor r9d, r9d
mov r10d, 6
xor r8d, r8d
cmp qword [rsp + 0x238], 0x1000
jge 0x1404070d4
mov qword [rsp + 0x258], rdi
lea rdi, [0x140000000]
mov r12, qword [rsp + 0x1c8]
mov r11, qword [rsp + 0x268]
jmp 0x140407128
mov rdx, qword [rsp + 0x238]
mov r11, qword [rsp + 0x268]
mov qword [rsp + 0x258], rdi
lea rdi, [0x140000000]
lea rdx, [rdx - 0x1000]
mov ecx, 2
mov r13, qword [rdi + r8 + 0x5a07b8]
mov r14, qword [rdi + r8 + 0x5a07b0]
movsx r12, word [rdi + r10 + 0x5a093a]
mov qword [rsp + 0x978], r13
mov qword [rsp + 0x980], r14
mov r15, r11
shr r15, 6
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x148], r15
mov qword [rsp + 0x1c8], r12
mov qword [rsp + 0x200], rsi
lea r14, [r15 - 1]
mov qword [rsp + 0x140], r14
lea r13, [rsp + r15*8 + 0x970]
mov qword [rsp + 0x138], r13
mov qword [rsp + 0x268], r11
inc rbx
add r10, 0xfffffffffffffffe
sar rbp, 1
add r9, 0xfffffffffffffffe
add r8, 0xfffffffffffffff0
cmp rbx, 4
jae 0x140407a42
cmp rdx, rbp
jl 0x140407173
sub rdx, rbp
test rcx, rcx
je 0x14040a16a
lea rdi, [0x140000000]
xor r13d, r13d
mov rax, qword [rsp + rcx*8 + 0x970]
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x80], r10
mov rsi, qword [rdi + r8 + 0x5a07b0]
mov r11, rsi
movsx r12, word [rdi + r9 + 0x5a0940]
mov r9d, eax
shr r11, 0x20
mov r15, r9
imul r15, r11
mov r14d, esi
mov r10, r9
imul r10, r14
mov qword [rsp + 0x130], r12
mov qword [rsp + 0x70], rbx
mov rbx, r15
mov qword [rsp + 0x88], r8
mov r12, qword [rdi + r8 + 0x5a07b8]
mov r8, rax
shr r8, 0x20
lea rax, [rcx + 1]
shl rbx, 0x20
mov qword [rsp + 0x2a8], r14
add r10, rbx
imul r14, r8
cmp r10, rbx
mov rbx, r8
mov qword [rsp + 0x880], rsi
movsxd rsi, eax
setb r13b
imul rbx, r11
mov qword [rsp + 0x2b8], r11
mov r11, r14
shr r15, 0x20
lea rdi, [rsp + rsi*8 + 0x4f0]
shl r11, 0x20
add rbx, r15
add r10, r11
mov qword [rsp + 0x878], r12
add rbx, r13
mov qword [rdi + 8], r10
cmp r10, r11
mov r10d, r12d
mov r13, r9
mov qword [rsp + 0x2b0], r10
mov r11d, 0
mov qword [rsp + 0x78], rsi
lea rsi, [rsp + rsi*8 + 0x470]
setb r11b
xor r15d, r15d
shr r12, 0x20
imul r13, r12
imul r9, r10
imul r10, r8
imul r8, r12
shr r14, 0x20
add rbx, r14
mov r14, r13
shr r13, 0x20
shl r14, 0x20
add r8, r13
mov r13, r10
add r9, r14
shl r13, 0x20
add rbx, r11
xor r11d, r11d
cmp r9, r14
setb r11b
xor r14d, r14d
add r9, r13
cmp r9, r13
setb r14b
add rbx, r9
cmp rbx, r9
mov r9d, 0
setb r9b
shr r10, 0x20
add r11, r10
add r8, r11
add r14, r9
add r8, r14
mov qword [rdi], rbx
add eax, 0xfffffffe
mov qword [rdi - 8], r8
mov qword [rsi], r15
mov qword [rsi - 8], r15
mov r10, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
mov r9, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x70]
js 0x140407483
mov rax, qword [rsp + 0x78]
lea r14, [rax - 1]
movsxd r13, r14d
neg r13
dec r13
neg r13
dec r13
cmp r13, 2
jl 0x14040a58a
mov r11, rax
mov eax, 1
sub r11, r14
lea r11, [rsp + r11*8 + 0x4e8]
and r11, 0xf
cmovne r11, rax
lea r15, [r11 + 2]
cmp r13, r15
jl 0x14040a58a
mov eax, r11d
mov r15d, r13d
neg eax
add eax, r15d
and eax, 1
sub r15d, eax
lea rax, [r14*8]
movsxd r15, r15d
mov qword [rsp + 0xa0], r15
mov r15, rsi
sub r15, rax
neg rax
add rax, rdi
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], r15
test r11, r11
jbe 0x140407413
mov qword [rsp + 0xf8], rdx
xor r15d, r15d
mov qword [rsp + 0x120], rcx
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
mov qword [rcx + rdx*8 - 8], r15
mov qword [rax + rdx*8 - 8], r15
inc rdx
cmp rdx, r11
jb 0x1404073f1
mov rdx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x120]
mov qword [rsp + 0x120], rcx
mov rcx, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x98]
movdqu xmmword [r15 + r11*8 - 8], xmm0
movdqu xmmword [rax + r11*8 - 8], xmm0
add r11, 2
cmp r11, rcx
jb 0x14040742b
mov qword [rsp + 0xa0], rcx
mov rcx, qword [rsp + 0x120]
cmp r13, qword [rsp + 0xa0]
jbe 0x140407483
shl r14, 3
xor r11d, r11d
mov rax, qword [rsp + 0xa0]
sub rsi, r14
sub rdi, r14
mov qword [rsi + rax*8 - 8], r11
mov qword [rdi + rax*8 - 8], r11
inc rax
cmp rax, r13
jb 0x140407471
xor r13d, r13d
lea rax, [rcx - 1]
mov r14d, eax
test r14d, r14d
je 0x1404076f5
movsxd r15, eax
mov qword [rsp + 0x2c8], r15
mov qword [rsp + 0x80], r10
mov qword [rsp + 0x68], r9
mov dword [rsp + 0x28], r14d
lea r11, [rsp + r15*8 + 0x4f0]
mov rax, qword [r11 + 8]
lea rsi, [rsp + r15*8 + 0x470]
mov qword [rsp + 0x20], rax
lea r15, [rsp + r15*8 + 0x970]
mov rdi, qword [r11 + 0x10]
mov rax, qword [rsi]
mov qword [rsp + 0x2c0], r15
mov qword [rsp + 0x2d0], r12
mov qword [rsp + 0x88], r8
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x120], rcx
mov r10, qword [rsp + 0x20]
mov r9, r13
mov rbp, qword [rsp + 0x2c0]
inc r13
mov rbx, qword [rsp + 0x2b8]
mov rcx, rbx
mov qword [rsp + 0x2d8], r13
xor r14d, r14d
mov r8, qword [rbp + r9*8]
mov rbp, r8
mov r8d, r8d
imul rcx, r8
mov r13, qword [rsp + 0x2a8]
mov r12, r13
imul r12, r8
shr rbp, 0x20
mov rdx, rcx
imul r13, rbp
imul rbx, rbp
shl rdx, 0x20
mov r15, r13
add r12, rdx
cmp r12, rdx
mov edx, r14d
setb dl
shr rcx, 0x20
add rbx, rcx
shr r13, 0x20
shl r15, 0x20
add rdx, r13
add r12, r15
add rbx, rdx
mov rdx, qword [rsp + 0x2d0]
mov rcx, rdx
cmp r12, r15
mov r15d, r14d
setb r15b
xor r13d, r13d
add rdi, r12
imul rcx, r8
cmp rdi, r12
mov r12, qword [rsp + 0x2b0]
mov qword [r11 + r9*8 + 0x10], rdi
mov edi, r14d
setb dil
imul r8, r12
imul r12, rbp
imul rbp, rdx
xor edx, edx
add r15, rdi
mov rdi, rcx
add rbx, r15
add r10, rbx
cmp r10, rbx
setb r13b
shl rdi, 0x20
add r8, rdi
add rax, r13
xor r13d, r13d
cmp r8, rdi
mov rdi, r12
setb r13b
shl rdi, 0x20
add r8, rdi
cmp r8, rdi
setb dl
shr rcx, 0x20
lea rdi, [r8 + r10]
xor r10d, r10d
cmp rdi, r8
setb r10b
add rbp, rcx
shr r12, 0x20
add r13, r12
add rbp, r13
add rdx, r10
add rbp, rdx
mov r10, qword [r11 + r9*8]
add r10, rbp
cmp r10, rbp
mov qword [rsi + r9*8], rax
setb r14b
mov eax, r14d
mov r13, qword [rsp + 0x2d8]
add rax, qword [rsi + r9*8 - 8]
dec r9
cmp r13, qword [rsp + 0x2c8]
jb 0x140407515
shl r13, 3
sub rsi, r13
sub r11, r13
mov qword [rsp + 0x20], r10
mov r14d, dword [rsp + 0x28]
mov r12, r10
mov qword [rsi], rax
mov eax, r14d
xor esi, esi
mov r10, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
mov r9, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x120]
mov qword [r11 + 8], r12
mov qword [r11 + 0x10], rdi
mov edi, 1
shr eax, 3
je 0x1404076ce
inc esi
cmp esi, eax
jb 0x1404076c1
lea edi, [rsi*8 + 1]
cmp edi, r14d
ja 0x1404076f5
dec edi
lea rsi, [0x140000000]
sub r14d, edi
dec r14d
movzx eax, byte [rsi + r14 + 0x5a00f8]
lea rax, [rsi + rax + 0x4076f5]
jmp rax
mov r13, qword [rsp + 0x1c8]
lea r12, [rcx + 1]
add r13, qword [rsp + 0x130]
mov r11d, r12d
mov qword [rsp + 0x1c8], r13
lea r13, [rcx + 2]
mov rax, qword [rsp + r13*8 + 0x4f0]
lea r14, [rsp + rcx*8 + 0x980]
mov qword [r14], rax
xor edi, edi
test r11d, r11d
je 0x140407835
mov r15d, r11d
xor esi, esi
mov eax, 1
shr r15d, 1
je 0x140407804
movsxd rax, r12d
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x30], rbp
lea r15, [rsp + rax*8 + 0x970]
mov qword [rsp + 0x38], r15
lea r15, [rsp + rax*8 + 0x4f0]
lea rax, [rsp + rax*8 + 0x470]
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x68], r9
xor r9d, r9d
mov rbp, r15
mov rbx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov rdx, rsi
add rdi, qword [rdx + rax]
inc rsi
mov r15, qword [rdx + rbp]
add r15, rdi
cmp r15, rdi
mov edi, r9d
mov qword [rdx + rbx], r15
setb dil
add rdi, qword [rdx + rax - 8]
mov r15, qword [rdx + rbp - 8]
add r15, rdi
cmp r15, rdi
mov edi, r9d
mov qword [rdx + rbx - 8], r15
setb dil
add rdx, 0xfffffffffffffff0
cmp rsi, rcx
jb 0x1404077a0
mov r9, qword [rsp + 0x68]
lea eax, [rsi + rsi + 1]
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x120]
lea esi, [rax - 1]
cmp esi, r11d
jae 0x140407832
movsxd rax, eax
movsxd rsi, r12d
sub rsi, rax
add rdi, qword [rsp + rsi*8 + 0x478]
add rdi, qword [rsp + rsi*8 + 0x4f8]
mov qword [rsp + rsi*8 + 0x978], rdi
mov rax, qword [r14]
jmp 0x140407835
mov rax, qword [r14]
test rax, rax
jne 0x140407860
xor esi, esi
xor eax, eax
add rax, 0xfffffffffffffff8
inc rsi
cmp qword [rax + r14], 0
je 0x14040783e
neg rsi
lea r13, [rsi + rcx + 2]
lea r14, [rsp + r13*8 + 0x970]
lea r12, [r13 - 1]
mov rsi, qword [rsp + 0x978]
test rsi, rsi
jle 0x140407930
dec qword [rsp + 0x1c8]
add rsi, rsi
mov qword [rsp + 0x978], rsi
cmp r13, 2
jb 0x140407930
xor edi, edi
lea r11, [r13 - 1]
mov eax, 1
shr r11, 1
je 0x140407900
nop
movsxd rax, edi
inc edi
shl rax, 4
mov rcx, qword [rsp + rax + 0x980]
mov r15, rcx
shr r15, 0x3f
add rcx, rcx
or rsi, r15
mov qword [rsp + rax + 0x978], rsi
mov rsi, qword [rsp + rax + 0x988]
mov r15, rsi
shr r15, 0x3f
add rsi, rsi
or rcx, r15
mov qword [rsp + rax + 0x980], rcx
cmp rdi, r11
jb 0x1404078a0
lea eax, [rdi + rdi]
movsxd rdi, edi
shl rdi, 4
movsxd rax, eax
inc rax
mov qword [rsp + rdi + 0x978], rsi
dec rax
lea rsi, [r13 - 1]
mov ecx, eax
cmp rcx, rsi
jae 0x140407930
mov rsi, qword [rsp + rax*8 + 0x980]
mov rcx, rsi
shr rcx, 0x3f
add rsi, rsi
or qword [rsp + rax*8 + 0x978], rcx
mov qword [rsp + rax*8 + 0x980], rsi
cmp qword [r14], 0
mov rcx, r13
cmove rcx, r12
cmp rcx, qword [rsp + 0x148]
jb 0x140407a26
mov rcx, qword [rsp + 0x148]
mov rax, rcx
mov rsi, qword [rsp + rax*8 + 0x978]
shr rsi, 0x3f
mov rdi, qword [rsp + rax*8 + 0x970]
add rdi, rsi
cmp rdi, rsi
jae 0x1404079ec
mov rcx, qword [rsp + 0x140]
mov qword [rsp + rax*8 + 0x970], rdi
lea rsi, [rsp + rax*8 + 0x968]
mov qword [rsp + 0x970], 0
cmp qword [rsi], 0xffffffffffffffff
jne 0x1404079bc
xor ecx, ecx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rcx
cmp qword [rax + rsi], 0xffffffffffffffff
je 0x14040799e
neg rcx
mov rax, qword [rsp + 0x148]
lea rcx, [rcx + rax - 1]
test rcx, rcx
je 0x1404079cb
inc qword [rsp + rcx*8 + 0x970]
jmp 0x140407a26
movabs rax, 0x8000000000000000
mov ecx, 1
inc qword [rsp + 0x1c8]
mov qword [rsp + 0x978], rax
jmp 0x140407a26
mov qword [rsp + rax*8 + 0x970], rdi
test rdi, rdi
jne 0x140407a26
xor ecx, ecx
mov rsi, qword [rsp + 0x138]
xor eax, eax
add rax, 0xfffffffffffffff8
inc rcx
cmp qword [rax + rsi], 0
je 0x140407a05
neg rcx
mov qword [rsp + 0x138], rsi
add rcx, qword [rsp + 0x148]
inc rbx
add r10, 0xfffffffffffffffe
sar rbp, 1
add r9, 0xfffffffffffffffe
add r8, 0xfffffffffffffff0
cmp rbx, 4
jb 0x14040718f
mov rax, qword [rsp + 0x1c0]
mov rsi, qword [rsp + 0x200]
mov rdi, qword [rsp + 0x258]
lea rbx, [rdx + 0x1b]
cmp rbx, 0x1a
ja 0x140407abb
lea r8, [0x140000000]
mov ebp, 2
movsx rbx, word [r8 + rdx*2 + 0x5a091e]
shl rdx, 4
mov rax, qword [r8 + rdx + 0x5a05f8]
mov rdx, qword [r8 + rdx + 0x5a05f0]
mov qword [rsp + 0xaf8], rax
mov qword [rsp + 0xb00], rdx
test rdx, rdx
jne 0x14040a3f6
dec rbp
mov r8, qword [rsp + rbp*8 + 0xaf0]
test r8, r8
je 0x140407aa6
jmp 0x140408c9c
mov ebx, 0x80
movdqu xmmword [rsp + rbx + 0x9e0], xmm0
movdqu xmmword [rsp + rbx + 0x9d0], xmm0
movdqu xmmword [rsp + rbx + 0x9c0], xmm0
movdqu xmmword [rsp + rbx + 0x9b0], xmm0
sub rbx, 0x40
jne 0x140407ac0
test rdx, rdx
jl 0x14040a507
cmp rdx, 0x37
jl 0x140407b73
mov rbp, rdx
lea rbx, [0x140000000]
shr rbp, 3
movsxd r10, ebp
movzx r8d, word [rbx + r10*2 + 0x5a0862]
lea r9, [r10 + 1]
shr r8d, 5
cmp r8, rdx
cmovle r10, r9
movzx r13d, word [rbx + r10*2 + 0x5a0860]
mov r11d, r13d
and r11d, 0x1f
movsx r14, word [rbx + r11*2 + 0x5a0942]
shl r11, 4
shr r13d, 5
sub rdx, r13
movsxd rdx, edx
mov r15, qword [rbx + r11 + 0x5a07c8]
mov rbx, qword [rbx + r11 + 0x5a07c0]
mov qword [rsp + 0x130], r14
mov qword [rsp + 0x878], r15
mov qword [rsp + 0x880], rbx
jmp 0x140407b78
movsxd rdx, edx
xor eax, eax
cmp rdx, 0x37
je 0x14040a4d7
mov r9, rdx
add r9, 0xffffffffffffffe5
jle 0x140407bd1
lea rbp, [0x140000000]
mov edx, 0x1b
mov r12d, 1
movsx rbx, word [rbp + r9*2 + 0x5a0cbe]
mov r8, qword [rbp + r9*8 + 0x5a0ad8]
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0x9f8], r8
test r8, r8
jne 0x140407bd1
dec r12
cmp qword [rsp + r12*8 + 0x9f0], 0
je 0x140407bc3
lea r8, [0x140000000]
mov ebp, 1
movsx rbx, word [r8 + rdx*2 + 0x5a0cbe]
mov rdx, qword [r8 + rdx*8 + 0x5a0ad8]
mov qword [rsp + 0xaf8], rdx
test rdx, rdx
jne 0x14040a4ca
dec rbp
mov r8, qword [rsp + rbp*8 + 0xaf0]
test r8, r8
je 0x140407bff
test r9, r9
jle 0x14040849c
mov r15, qword [rsp + r12*8 + 0x9f0]
mov r14, r15
mov r10d, r8d
mov r9, r8
shr r14, 0x20
mov r8, r10
imul r8, r14
mov r15d, r15d
mov r11, r8
shr r9, 0x20
lea rdx, [r12 + rbp - 1]
mov qword [rsp + 0xe0], r10
imul r10, r15
imul r15, r9
imul r14, r9
shl r11, 0x20
shr r8, 0x20
add r10, r11
mov qword [rsp + 0xe8], r9
mov r9, r15
movsxd r13, edx
add r14, r8
xor r8d, r8d
cmp r10, r11
mov r11d, 0
setb r8b
shl r9, 0x20
add r10, r9
cmp r10, r9
mov qword [rsp + 0xd8], r13
lea r13, [rsp + r13*8 + 0xbf0]
setb r11b
add r14, r8
shr r15, 0x20
xor r8d, r8d
mov qword [r13 + 8], r10
lea r10, [r12 - 1]
add r14, r15
movsxd r10, r10d
add r14, r11
mov qword [r13], r14
xor r11d, r11d
mov r9, qword [rsp + 0xd8]
test r10, r10
je 0x140407e16
mov qword [rsp + 0x200], rsi
lea r15, [rsp + r9*8 + 0x5f0]
mov qword [rsp + 0x258], rdi
lea rdx, [rsp + r10*8 + 0x9f0]
mov qword [rsp + 0xd8], r9
mov qword [rsp + 0x208], rbx
mov qword [rsp + 0x210], rbp
xor ebp, ebp
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0xb8], r12
mov qword [rsp + 0x120], rcx
mov rdi, qword [rsp + 0xe0]
mov rsi, qword [rsp + 0xe8]
mov r12, qword [rdx + r11*8]
mov r9, r12
shr r9, 0x20
mov rax, rdi
imul rax, r9
imul r9, rsi
mov ebx, r12d
mov rcx, rdi
imul rcx, rbx
imul rbx, rsi
mov r12, rax
inc r8
shl r12, 0x20
shr rax, 0x20
add rcx, r12
add r9, rax
cmp rcx, r12
mov r12, rbx
mov eax, ebp
setb al
shl r12, 0x20
add rcx, r12
cmp rcx, r12
mov r12d, ebp
setb r12b
add r14, rcx
cmp r14, rcx
mov ecx, ebp
mov qword [r13 + r11*8], r14
setb cl
shr rbx, 0x20
mov r14d, r12d
add rax, rbx
add r9, rax
add r14, rcx
mov qword [r15 + r11*8], 0
add r14, r9
dec r11
cmp r8, r10
jb 0x140407d37
mov r9, qword [rsp + 0xd8]
mov edx, r9d
sub edx, r8d
shl r8, 3
neg r8
mov rbx, qword [rsp + 0x208]
mov rbp, qword [rsp + 0x210]
mov rax, qword [rsp + 0x1c0]
mov r12, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x120]
mov rsi, qword [rsp + 0x200]
mov rdi, qword [rsp + 0x258]
mov qword [r8 + r13], r14
movsxd r9, edx
mov r10, qword [rsp + 0x1b0]
lea r11, [r9 - 1]
movsxd r8, r11d
inc r8
dec edx
mov qword [rsp + r9*8 + 0x5f0], 0
cmovns r10, r8
mov qword [rsp + 0x1b0], r10
js 0x140407f3b
movsxd r14, dword [rsp + 0x1b0]
neg r14
dec r14
neg r14
dec r14
cmp r14, 2
jl 0x14040a4c2
sub r11, qword [rsp + 0x1b0]
mov edx, 1
lea r11, [rsp + r11*8 + 0xbf8]
and r11, 0xf
cmovne r11, rdx
lea r8, [r11 + 2]
cmp r14, r8
jl 0x14040a4c2
mov rdx, r10
mov r10d, r11d
mov r13d, r14d
neg r10d
add r10d, r13d
lea r8, [rsp + r9*8 + 0xbe8]
and r10d, 1
sub r13d, r10d
lea r15, [rdx*8]
sub r8, r15
lea rdx, [rsp + r9*8 + 0x5e8]
sub rdx, r15
xor r10d, r10d
movsxd r13, r13d
test r11, r11
jbe 0x140407ee4
xor r15d, r15d
mov qword [rdx + r10*8 + 8], r15
mov qword [r8 + r10*8 + 8], r15
inc r10
cmp r10, r11
jb 0x140407ed2
movdqu xmmword [rdx + r11*8 + 8], xmm0
movdqu xmmword [r8 + r11*8 + 8], xmm0
add r11, 2
cmp r11, r13
jb 0x140407ee4
cmp r13, r14
jae 0x140407f3b
mov rdx, qword [rsp + 0x1b0]
lea r8, [rsp + r9*8 + 0x5e8]
lea r10, [rdx*8]
sub r8, r10
lea rdx, [rsp + r9*8 + 0xbe8]
sub rdx, r10
xor r9d, r9d
mov qword [r8 + r13*8 + 8], r9
mov qword [rdx + r13*8 + 8], r9
inc r13
cmp r13, r14
jb 0x140407f29
xor r8d, r8d
lea r13, [rbp - 1]
movsxd r13, r13d
xor r11d, r11d
test r13, r13
je 0x1404081b0
movsxd r9, r12d
lea r10, [rsp + r13*8 + 0xaf0]
mov qword [rsp + 0x350], r10
lea r10, [rsp + r13*8 + 0x5f0]
mov qword [rsp + 0x378], r13
mov qword [rsp + 0x208], rbx
mov qword [rsp + 0x210], rbp
lea rdx, [r13 + r9]
mov qword [rsp + 0x348], rdx
lea r15, [r9*8]
mov qword [rsp + 0x328], r15
lea r14, [rsp + r9*8 + 0x9f0]
mov qword [rsp + 0x330], r14
lea rdx, [rsp + r13*8 + 0xbf0]
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0xb8], r12
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x200], rsi
mov qword [rsp + 0x258], rdi
mov r15, qword [rsp + 0x350]
mov r14, qword [rsp + 0x348]
xor ebx, ebx
xor r13d, r13d
test r9, r9
je 0x140408161
mov rcx, qword [r15 + r11*8]
lea rax, [r8*8]
mov edi, ecx
mov rbp, rcx
mov rcx, qword [rsp + 0x328]
sub rcx, rax
neg rax
add rax, rdx
mov qword [rsp + 0x358], r10
mov rsi, qword [rsp + r14*8 + 0xbf0]
shr rbp, 0x20
lea r12, [r10 + rcx]
mov qword [rsp + 0x360], rdx
lea rax, [rax + r9*8]
mov qword [rsp + 0x348], r14
add rcx, rdx
mov qword [rsp + 0x340], r11
mov qword [rsp + 0x338], r8
mov r10, qword [rsp + 0x330]
mov rdx, qword [r10 + r13*8]
mov r8, rdx
shr r8, 0x20
mov r11, rdi
imul r11, r8
imul r8, rbp
dec r13
mov r15, rdi
mov qword [rsp + 0x450], r13
mov r14, r11
mov r13d, edx
xor edx, edx
imul r15, r13
imul r13, rbp
shr r11, 0x20
shl r14, 0x20
add r8, r11
mov r11, r13
add r15, r14
shl r11, 0x20
cmp r15, r14
mov r14d, edx
setb r14b
add r15, r11
cmp r15, r11
mov r11d, edx
setb r11b
add rsi, r15
cmp rsi, r15
mov r15d, edx
setb r15b
shr r13, 0x20
add r14, r13
add r8, r14
add r11, r15
add r8, r11
lea r13, [rbx*8]
mov r11, rax
inc rbx
sub r11, r13
mov qword [r11], rsi
mov rsi, rcx
sub rsi, r13
neg r13
add r13, r12
mov rsi, qword [rsi - 8]
add rsi, r8
cmp rsi, r8
setb dl
add qword [r13 - 0x10], rdx
mov r13, qword [rsp + 0x450]
cmp rbx, r9
jb 0x140408068
shl rbx, 3
sub rax, rbx
mov rdx, qword [rsp + 0x360]
mov r10, qword [rsp + 0x358]
mov r15, qword [rsp + 0x350]
mov r14, qword [rsp + 0x348]
mov r11, qword [rsp + 0x340]
mov r8, qword [rsp + 0x338]
mov qword [rax], rsi
inc r8
dec r14
dec r11
cmp r8, qword [rsp + 0x378]
jb 0x140407ff1
mov rbx, qword [rsp + 0x208]
mov rbp, qword [rsp + 0x210]
mov rax, qword [rsp + 0x1c0]
mov r12, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x120]
mov rsi, qword [rsp + 0x200]
mov rdi, qword [rsp + 0x258]
add rbx, qword [rsp + 0xd0]
lea rdx, [rbp + r12]
mov r8, qword [rsp + rdx*8 + 0xbf0]
lea rbp, [rbp + r12 - 1]
mov r14d, ebp
lea r15, [rsp + rdx*8 + 0xaf0]
mov qword [r15], r8
xor r12d, r12d
test r14d, r14d
je 0x1404082e0
mov r10d, r14d
xor r13d, r13d
mov r8d, 1
xor r11d, r11d
shr r10d, 1
je 0x1404082ae
movsxd r8, ebp
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x200], rsi
xor esi, esi
mov qword [rsp + 0x258], rdi
lea r9, [rsp + r8*8 + 0xaf0]
mov qword [rsp + 0xc0], r9
lea r9, [rsp + r8*8 + 0xbf0]
mov rcx, qword [rsp + 0xc0]
lea r8, [rsp + r8*8 + 0x5f0]
nop dword [rax + rax]
nop dword [rax]
add r12, qword [r11 + r8]
inc r13
mov rdi, qword [r11 + r9]
add rdi, r12
cmp rdi, r12
mov r12d, esi
mov qword [r11 + rcx], rdi
setb r12b
add r12, qword [r11 + r8 - 8]
mov rdi, qword [r11 + r9 - 8]
add rdi, r12
cmp rdi, r12
mov r12d, esi
mov qword [r11 + rcx - 8], rdi
setb r12b
add r11, 0xfffffffffffffff0
cmp r13, r10
jb 0x140408250
mov rcx, qword [rsp + 0x120]
lea r8d, [r13 + r13 + 1]
mov rsi, qword [rsp + 0x200]
mov rdi, qword [rsp + 0x258]
lea r9d, [r8 - 1]
cmp r9d, r14d
jae 0x1404082dd
movsxd r8, r8d
movsxd r9, ebp
sub r9, r8
add r12, qword [rsp + r9*8 + 0x5f8]
add r12, qword [rsp + r9*8 + 0xbf8]
mov qword [rsp + r9*8 + 0xaf8], r12
mov r8, qword [r15]
jmp 0x1404082e0
mov r8, qword [r15]
test r8, r8
jne 0x1404082fa
dec rdx
lea r15, [rsp + rdx*8 + 0xaf0]
cmp qword [r15], 0
je 0x1404082e5
lea rbp, [rdx - 1]
mov r10, qword [rsp + 0xaf8]
test r10, r10
jle 0x1404083d3
add r10, r10
dec rbx
mov qword [rsp + 0xaf8], r10
cmp rdx, 2
jb 0x1404083d3
xor r9d, r9d
lea r8, [rdx - 1]
mov r11d, 1
shr r8, 1
je 0x1404083a2
nop dword [rax]
nop dword [rax]
movsxd r14, r9d
inc r9d
shl r14, 4
mov r13, qword [rsp + r14 + 0xb00]
mov r11, r13
shr r11, 0x3f
add r13, r13
or r10, r11
mov qword [rsp + r14 + 0xaf8], r10
mov r10, qword [rsp + r14 + 0xb08]
mov r12, r10
shr r12, 0x3f
add r10, r10
or r13, r12
mov qword [rsp + r14 + 0xb00], r13
cmp r9, r8
jb 0x140408340
lea r11d, [r9 + r9]
movsxd r9, r9d
shl r9, 4
movsxd r11, r11d
inc r11
mov qword [rsp + r9 + 0xaf8], r10
dec r11
lea r9, [rdx - 1]
mov r8d, r11d
cmp r8, r9
jae 0x1404083d3
mov r9, qword [rsp + r11*8 + 0xb00]
mov r8, r9
shr r8, 0x3f
add r9, r9
or qword [rsp + r11*8 + 0xaf8], r8
mov qword [rsp + r11*8 + 0xb00], r9
cmp qword [r15], 0
mov r9, qword [rsp + 0x268]
cmovne rbp, rdx
shr r9, 6
cmp rbp, r9
jb 0x140408494
mov rbp, r9
mov rdx, qword [rsp + r9*8 + 0xaf8]
shr rdx, 0x3f
mov r8, qword [rsp + r9*8 + 0xaf0]
add r8, rdx
cmp r8, rdx
jae 0x140408475
mov qword [rsp + r9*8 + 0xaf0], r8
lea rdx, [rsp + r9*8 + 0xae8]
mov qword [rsp + 0xaf0], 0
lea rbp, [r9 - 1]
mov r8, qword [rdx]
cmp r8, 0xffffffffffffffff
jne 0x14040844c
dec rbp
lea rdx, [rsp + rbp*8 + 0xaf0]
mov r8, qword [rdx]
cmp r8, 0xffffffffffffffff
je 0x140408438
test rbp, rbp
je 0x140408459
inc r8
mov qword [rdx], r8
jmp 0x14040849c
movabs r8, 0x8000000000000000
mov ebp, 1
mov qword [rsp + 0xaf8], r8
inc rbx
jmp 0x14040849c
mov qword [rsp + r9*8 + 0xaf0], r8
test r8, r8
jne 0x14040849c
dec rbp
mov r8, qword [rsp + rbp*8 + 0xaf0]
test r8, r8
je 0x140408482
jmp 0x14040849c
mov r8, qword [rsp + rbp*8 + 0xaf0]
test rax, rax
je 0x140408c9c
mov r14d, r8d
lea r9, [rbp + rax - 1]
mov r11, r8
mov r12, r14
mov r8, qword [rsp + rax*8 + 0x870]
lea rdx, [rbp + rax]
movsxd r10, r9d
mov r9, r8
shr r9, 0x20
imul r12, r9
mov r13d, r8d
mov r15, r12
shr r11, 0x20
lea r8, [rsp + r10*8 + 0xb70]
mov qword [rsp + 0xb0], r14
imul r14, r13
imul r9, r11
imul r13, r11
shl r15, 0x20
shr r12, 0x20
add r14, r15
add r9, r12
xor r12d, r12d
cmp r14, r15
mov r15d, r12d
setb r15b
add r9, r15
mov r15, r13
shl r15, 0x20
add r14, r15
cmp r14, r15
mov qword [r8 + 8], r14
setb r12b
xor r15d, r15d
xor r14d, r14d
shr r13, 0x20
add r9, r13
add r9, r12
lea r13, [rax - 1]
mov qword [r8], r9
mov qword [rsp + 0x210], rbp
lea r12, [rsp + r10*8 + 0x570]
mov qword [rsp + 0x60], r12
lea r12, [rsp + rax*8 + 0x868]
mov qword [rsp + 0x200], rsi
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x208], rbx
xor ebx, ebx
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x258], rdi
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0xb0]
mov r10, qword [r12 + r14*8]
mov rdi, r10
shr rdi, 0x20
mov rax, rsi
imul rax, rdi
imul rdi, r11
mov ecx, r10d
mov rdx, rsi
imul rdx, rcx
imul rcx, r11
mov r10, rax
inc r15
shl r10, 0x20
shr rax, 0x20
add rdx, r10
add rdi, rax
cmp rdx, r10
mov r10, rcx
mov eax, ebx
setb al
shl r10, 0x20
add rdx, r10
cmp rdx, r10
mov r10d, ebx
setb r10b
add r9, rdx
cmp r9, rdx
mov edx, ebx
mov qword [r8 + r14*8], r9
setb dl
shr rcx, 0x20
mov r9d, r10d
add rax, rcx
add rdi, rax
add r9, rdx
mov qword [rbp + r14*8], 0
add r9, rdi
dec r14
cmp r15, r13
jb 0x14040859c
mov r10, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
sub r10d, r15d
shl r15, 3
neg r15
mov rbx, qword [rsp + 0x208]
mov rbp, qword [rsp + 0x210]
mov rax, qword [rsp + 0x1c0]
mov rcx, qword [rsp + 0x120]
mov rsi, qword [rsp + 0x200]
mov rdi, qword [rsp + 0x258]
mov qword [r15 + r8], r9
movsxd r14, r10d
mov r9, qword [rsp + 0xa8]
lea r11, [r14 - 1]
movsxd r8, r11d
inc r8
dec r10d
mov qword [rsp + r14*8 + 0x570], 0
cmovns r9, r8
mov qword [rsp + 0xa8], r9
js 0x14040879e
movsxd r13, dword [rsp + 0xa8]
neg r13
dec r13
neg r13
dec r13
cmp r13, 2
jl 0x14040a4ba
sub r11, qword [rsp + 0xa8]
mov r8d, 1
lea r11, [rsp + r11*8 + 0xb78]
and r11, 0xf
cmovne r11, r8
lea r9, [r11 + 2]
cmp r13, r9
jl 0x14040a4ba
mov r10d, r11d
mov r12d, r13d
mov r8, qword [rsp + 0xa8]
neg r10d
add r10d, r12d
lea r9, [rsp + r14*8 + 0xb68]
and r10d, 1
sub r12d, r10d
lea r15, [r8*8]
sub r9, r15
lea r8, [rsp + r14*8 + 0x568]
sub r8, r15
xor r10d, r10d
movsxd r12, r12d
test r11, r11
jbe 0x140408747
xor r15d, r15d
mov qword [r8 + r10*8 + 8], r15
mov qword [r9 + r10*8 + 8], r15
inc r10
cmp r10, r11
jb 0x140408735
movdqu xmmword [r8 + r11*8 + 8], xmm0
movdqu xmmword [r9 + r11*8 + 8], xmm0
add r11, 2
cmp r11, r12
jb 0x140408747
cmp r12, r13
jae 0x14040879e
mov r8, qword [rsp + 0xa8]
lea r9, [rsp + r14*8 + 0x568]
lea r10, [r8*8]
sub r9, r10
lea r8, [rsp + r14*8 + 0xb68]
sub r8, r10
xor r10d, r10d
mov qword [r9 + r12*8 + 8], r10
mov qword [r8 + r12*8 + 8], r10
inc r12
cmp r12, r13
jb 0x14040878c
xor r11d, r11d
lea r13, [rbp - 1]
movsxd r13, r13d
xor r10d, r10d
test r13, r13
je 0x1404089ed
mov qword [rsp + 0x320], r13
lea r14, [rsp + r13*8 + 0xb70]
mov qword [rsp + 0x2f0], r14
lea r15, [rax*8]
mov qword [rsp + 0x2e0], r15
lea r14, [rsp + rax*8 + 0x870]
mov qword [rsp + 0x2e8], r14
lea r9, [r13 + rax]
mov qword [rsp + 0x58], rdx
lea r8, [rsp + r13*8 + 0xaf0]
mov qword [rsp + 0x208], rbx
lea r12, [rsp + r13*8 + 0x570]
mov qword [rsp + 0x210], rbp
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x200], rsi
mov qword [rsp + 0x258], rdi
mov r15, qword [rsp + 0x2f0]
xor edi, edi
xor r14d, r14d
test rax, rax
je 0x1404089a9
mov rsi, qword [rsp + 0x2e0]
lea rdx, [r11*8]
sub rsi, rdx
neg rdx
add rdx, r15
mov rcx, qword [r8 + r10*8]
mov rbx, rcx
mov qword [rsp + 0x300], r10
mov rbp, qword [rsp + r9*8 + 0xb70]
shr rbx, 0x20
lea r13, [rdx + rax*8]
mov ecx, ecx
lea rdx, [r12 + rsi]
mov qword [rsp + 0x318], r12
add rsi, r15
mov qword [rsp + 0x310], r8
mov qword [rsp + 0x308], r9
mov qword [rsp + 0x2f8], r11
mov r10, qword [rsp + 0x2e8]
mov r8, qword [r10 + r14*8]
mov r9, r8
shr r9, 0x20
mov r11, rcx
imul r11, r9
imul r9, rbx
dec r14
mov r15, rcx
mov qword [rsp + 0x448], r14
mov r12, r11
mov r14d, r8d
xor r8d, r8d
imul r15, r14
imul r14, rbx
shr r11, 0x20
shl r12, 0x20
add r9, r11
mov r11, r14
add r15, r12
shl r11, 0x20
cmp r15, r12
mov r12d, r8d
setb r12b
add r15, r11
cmp r15, r11
mov r11d, r8d
setb r11b
add rbp, r15
cmp rbp, r15
mov r15d, r8d
setb r15b
shr r14, 0x20
add r12, r14
add r9, r12
add r11, r15
add r9, r11
lea r14, [rdi*8]
mov r11, r13
inc rdi
sub r11, r14
mov qword [r11], rbp
mov rbp, rsi
sub rbp, r14
neg r14
add r14, rdx
mov rbp, qword [rbp - 8]
add rbp, r9
cmp rbp, r9
setb r8b
add qword [r14 - 0x10], r8
mov r14, qword [rsp + 0x448]
cmp rdi, rax
jb 0x1404088ad
shl rdi, 3
sub r13, rdi
mov r15, qword [rsp + 0x2f0]
mov r12, qword [rsp + 0x318]
mov r8, qword [rsp + 0x310]
mov r9, qword [rsp + 0x308]
mov r10, qword [rsp + 0x300]
mov r11, qword [rsp + 0x2f8]
mov qword [r13], rbp
inc r11
dec r9
dec r10
cmp r11, qword [rsp + 0x320]
jb 0x140408836
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x208]
mov rbp, qword [rsp + 0x210]
mov rcx, qword [rsp + 0x120]
mov rsi, qword [rsp + 0x200]
mov rdi, qword [rsp + 0x258]
mov r8, qword [rsp + rdx*8 + 0xb70]
lea rbp, [rbp + rax - 1]
mov r13d, ebp
lea r15, [rsp + rdx*8 + 0xaf0]
add rbx, qword [rsp + 0x130]
xor eax, eax
mov qword [r15], r8
test r13d, r13d
je 0x140408ae0
mov r11d, r13d
xor r14d, r14d
mov r9d, 1
xor r10d, r10d
shr r11d, 1
je 0x140408aae
movsxd r12, ebp
mov qword [rsp + 0x200], rsi
xor esi, esi
mov qword [rsp + 0x258], rdi
lea r8, [rsp + r12*8 + 0xaf0]
lea r9, [rsp + r12*8 + 0xb70]
lea r12, [rsp + r12*8 + 0x570]
add rax, qword [r10 + r12]
inc r14
mov rdi, qword [r10 + r9]
add rdi, rax
cmp rdi, rax
mov eax, esi
mov qword [r10 + r8], rdi
setb al
add rax, qword [r10 + r12 - 8]
mov rdi, qword [r10 + r9 - 8]
add rdi, rax
cmp rdi, rax
mov eax, esi
mov qword [r10 + r8 - 8], rdi
setb al
add r10, 0xfffffffffffffff0
cmp r14, r11
jb 0x140408a5c
mov rsi, qword [rsp + 0x200]
lea r9d, [r14 + r14 + 1]
mov rdi, qword [rsp + 0x258]
lea r8d, [r9 - 1]
cmp r8d, r13d
jae 0x140408add
movsxd r9, r9d
movsxd r8, ebp
sub r8, r9
add rax, qword [rsp + r8*8 + 0x578]
add rax, qword [rsp + r8*8 + 0xb78]
mov qword [rsp + r8*8 + 0xaf8], rax
mov r8, qword [r15]
jmp 0x140408ae0
mov r8, qword [r15]
test r8, r8
jne 0x140408afa
dec rdx
lea r15, [rsp + rdx*8 + 0xaf0]
cmp qword [r15], 0
je 0x140408ae5
lea rbp, [rdx - 1]
mov r9, qword [rsp + 0xaf8]
test r9, r9
jle 0x140408bd3
add r9, r9
dec rbx
mov qword [rsp + 0xaf8], r9
cmp rdx, 2
jb 0x140408bd3
xor r8d, r8d
lea r10, [rdx - 1]
mov eax, 1
shr r10, 1
je 0x140408ba2
nop dword [rax + rax]
nop dword [rax]
movsxd r13, r8d
inc r8d
shl r13, 4
mov r12, qword [rsp + r13 + 0xb00]
mov rax, r12
shr rax, 0x3f
add r12, r12
or r9, rax
mov qword [rsp + r13 + 0xaf8], r9
mov r9, qword [rsp + r13 + 0xb08]
mov r11, r9
shr r11, 0x3f
add r9, r9
or r12, r11
mov qword [rsp + r13 + 0xb00], r12
cmp r8, r10
jb 0x140408b40
lea eax, [r8 + r8]
movsxd r8, r8d
shl r8, 4
movsxd rax, eax
inc rax
mov qword [rsp + r8 + 0xaf8], r9
dec rax
lea r9, [rdx - 1]
mov r8d, eax
cmp r8, r9
jae 0x140408bd3
mov r9, qword [rsp + rax*8 + 0xb00]
mov r8, r9
shr r8, 0x3f
add r9, r9
or qword [rsp + rax*8 + 0xaf8], r8
mov qword [rsp + rax*8 + 0xb00], r9
cmp qword [r15], 0
cmovne rbp, rdx
mov rdx, qword [rsp + 0x268]
shr rdx, 6
cmp rbp, rdx
jb 0x140408c94
mov rbp, rdx
mov rax, qword [rsp + rdx*8 + 0xaf8]
shr rax, 0x3f
mov r8, qword [rsp + rdx*8 + 0xaf0]
add r8, rax
cmp r8, rax
jae 0x140408c75
mov qword [rsp + rdx*8 + 0xaf0], r8
lea rax, [rsp + rdx*8 + 0xae8]
mov qword [rsp + 0xaf0], 0
lea rbp, [rdx - 1]
mov r8, qword [rax]
cmp r8, 0xffffffffffffffff
jne 0x140408c4c
dec rbp
lea rax, [rsp + rbp*8 + 0xaf0]
mov r8, qword [rax]
cmp r8, 0xffffffffffffffff
je 0x140408c38
test rbp, rbp
je 0x140408c59
inc r8
mov qword [rax], r8
jmp 0x140408c9c
movabs r8, 0x8000000000000000
inc rbx
mov qword [rsp + 0xaf8], r8
mov ebp, 1
jmp 0x140408c9c
mov qword [rsp + rdx*8 + 0xaf0], r8
test r8, r8
jne 0x140408c9c
dec rbp
mov r8, qword [rsp + rbp*8 + 0xaf0]
test r8, r8
je 0x140408c82
jmp 0x140408c9c
mov r8, qword [rsp + rbp*8 + 0xaf0]
test rcx, rcx
je 0x14040946c
mov eax, r8d
mov r13, r8
mov r8, qword [rsp + rcx*8 + 0x970]
mov r9, r8
shr r9, 0x20
mov r15, rax
imul r15, r9
mov r11d, r8d
mov r10, rax
shr r13, 0x20
mov rdx, r15
imul r10, r11
imul r9, r13
imul r11, r13
shl rdx, 0x20
lea r14, [rcx + rbp - 1]
shr r15, 0x20
add r10, rdx
add r9, r15
xor r15d, r15d
cmp r10, rdx
mov edx, 0
setb r15b
add r9, r15
mov r15, r11
shl r15, 0x20
movsxd r12, r14d
add r10, r15
cmp r10, r15
setb dl
shr r11, 0x20
lea r8, [rsp + r12*8 + 0xc70]
mov qword [r8 + 8], r10
add r9, r11
lea r10, [rcx - 1]
add r9, rdx
movsxd rdx, r10d
xor r10d, r10d
mov qword [r8], r9
xor r11d, r11d
test rdx, rdx
je 0x140408e51
mov qword [rsp + 0x118], r12
lea r15, [rsp + r12*8 + 0x7f0]
mov qword [rsp + 0x208], rbx
lea r14, [rsp + rdx*8 + 0x970]
mov qword [rsp + 0x210], rbp
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x200], rsi
xor esi, esi
mov qword [rsp + 0x258], rdi
mov r12, qword [r14 + r11*8]
mov rdi, r12
shr rdi, 0x20
mov rcx, rax
imul rcx, rdi
imul rdi, r13
mov ebp, r12d
mov rbx, rax
imul rbx, rbp
imul rbp, r13
mov r12, rcx
inc r10
shl r12, 0x20
shr rcx, 0x20
add rbx, r12
add rdi, rcx
cmp rbx, r12
mov r12, rbp
mov ecx, esi
setb cl
shl r12, 0x20
add rbx, r12
cmp rbx, r12
mov r12d, esi
setb r12b
add r9, rbx
cmp r9, rbx
mov ebx, esi
mov qword [r8 + r11*8], r9
setb bl
shr rbp, 0x20
mov r9d, r12d
add rcx, rbp
add rdi, rcx
add r9, rbx
mov qword [r15 + r11*8], 0
add r9, rdi
dec r11
cmp r10, rdx
jb 0x140408d83
mov r12, qword [rsp + 0x118]
mov r14d, r12d
sub r14d, r10d
shl r10, 3
neg r10
mov rbx, qword [rsp + 0x208]
mov rbp, qword [rsp + 0x210]
mov rcx, qword [rsp + 0x120]
mov rsi, qword [rsp + 0x200]
mov rdi, qword [rsp + 0x258]
mov qword [r10 + r8], r9
movsxd r12, r14d
mov rdx, qword [rsp + 0x150]
lea r9, [r12 - 1]
movsxd rax, r9d
inc rax
dec r14d
mov qword [rsp + r12*8 + 0x7f0], 0
cmovns rdx, rax
mov qword [rsp + 0x150], rdx
js 0x140408f7d
movsxd r8, dword [rsp + 0x150]
neg r8
dec r8
neg r8
dec r8
cmp r8, 2
jl 0x14040a4b3
sub r9, qword [rsp + 0x150]
mov edx, 1
lea rax, [rsp + r9*8 + 0xc78]
and rax, 0xf
cmovne rax, rdx
lea r9, [rax + 2]
cmp r8, r9
jl 0x14040a4b3
mov r9d, eax
mov edx, r8d
mov r10, qword [rsp + 0x150]
neg r9d
add r9d, edx
lea r11, [rsp + r12*8 + 0x7e8]
and r9d, 1
sub edx, r9d
lea r13, [r10*8]
sub r11, r13
lea r10, [rsp + r12*8 + 0xc68]
sub r10, r13
xor r9d, r9d
movsxd rdx, edx
test rax, rax
jbe 0x140408f26
xor r13d, r13d
mov qword [r11 + r9*8 + 8], r13
mov qword [r10 + r9*8 + 8], r13
inc r9
cmp r9, rax
jb 0x140408f14
movdqu xmmword [r11 + rax*8 + 8], xmm0
movdqu xmmword [r10 + rax*8 + 8], xmm0
add rax, 2
cmp rax, rdx
jb 0x140408f26
cmp rdx, r8
jae 0x140408f7d
mov rax, qword [rsp + 0x150]
lea r9, [rsp + r12*8 + 0x7e8]
lea r10, [rax*8]
sub r9, r10
lea rax, [rsp + r12*8 + 0xc68]
sub rax, r10
xor r10d, r10d
mov qword [r9 + rdx*8 + 8], r10
mov qword [rax + rdx*8 + 8], r10
inc rdx
cmp rdx, r8
jb 0x140408f6b
xor r10d, r10d
lea r13, [rbp - 1]
movsxd r13, r13d
xor r11d, r11d
test r13, r13
je 0x1404091bc
movsxd r12, ecx
lea r9, [rsp + r13*8 + 0xaf0]
mov qword [rsp + 0x400], r13
lea r8, [rsp + r13*8 + 0x7f0]
mov qword [rsp + 0x208], rbx
lea rax, [rsp + r13*8 + 0xc70]
mov qword [rsp + 0x210], rbp
mov qword [rsp + 0x120], rcx
lea r15, [r12*8]
mov qword [rsp + 0x3b8], r15
lea r14, [rsp + r12*8 + 0x970]
mov qword [rsp + 0x3c0], r14
lea rdx, [r13 + r12]
mov qword [rsp + 0x200], rsi
mov qword [rsp + 0x258], rdi
xor r15d, r15d
xor ecx, ecx
test r12, r12
je 0x14040917d
mov r14, qword [rsp + 0x3b8]
lea rbp, [r10*8]
sub r14, rbp
neg rbp
add rbp, rax
mov r13, qword [r9 + r11*8]
mov rdi, r13
mov rbx, qword [rsp + rdx*8 + 0xc70]
mov qword [rsp + 0x3d8], rdx
shr rdi, 0x20
lea rsi, [rbp + r12*8]
mov r13d, r13d
lea rbp, [r8 + r14]
mov qword [rsp + 0x3f0], rax
add r14, rax
mov qword [rsp + 0x3e8], r8
mov qword [rsp + 0x3e0], r9
mov qword [rsp + 0x3d0], r11
mov qword [rsp + 0x3c8], r10
mov rdx, qword [rsp + 0x3c0]
mov r9, qword [rdx + rcx*8]
mov rax, r9
dec rcx
mov r11, r13
mov qword [rsp + 0x458], rcx
mov rcx, r13
shr rax, 0x20
imul rcx, rax
imul rax, rdi
mov r8d, r9d
mov r10, rcx
imul r11, r8
imul r8, rdi
shl r10, 0x20
mov r9, r8
shr rcx, 0x20
add r11, r10
shl r9, 0x20
add rax, rcx
xor ecx, ecx
cmp r11, r10
mov r10d, ecx
setb r10b
add r11, r9
cmp r11, r9
mov r9d, ecx
setb r9b
add rbx, r11
cmp rbx, r11
mov r11d, ecx
setb r11b
shr r8, 0x20
add r10, r8
add rax, r10
add r9, r11
add rax, r9
lea r8, [r15*8]
mov r9, rsi
inc r15
sub r9, r8
mov qword [r9], rbx
mov rbx, r14
sub rbx, r8
neg r8
add r8, rbp
mov rbx, qword [rbx - 8]
add rbx, rax
cmp rbx, rax
setb cl
add qword [r8 - 0x10], rcx
mov rcx, qword [rsp + 0x458]
cmp r15, r12
jb 0x140409084
shl r15, 3
sub rsi, r15
mov rax, qword [rsp + 0x3f0]
mov r8, qword [rsp + 0x3e8]
mov r9, qword [rsp + 0x3e0]
mov rdx, qword [rsp + 0x3d8]
mov r11, qword [rsp + 0x3d0]
mov r10, qword [rsp + 0x3c8]
mov qword [rsi], rbx
inc r10
dec rdx
dec r11
cmp r10, qword [rsp + 0x400]
jb 0x140409003
mov rbx, qword [rsp + 0x208]
mov rbp, qword [rsp + 0x210]
mov rcx, qword [rsp + 0x120]
mov rsi, qword [rsp + 0x200]
mov rdi, qword [rsp + 0x258]
add rbx, qword [rsp + 0x1c8]
lea rdx, [rbp + rcx]
xor r9d, r9d
lea rbp, [rbp + rcx - 1]
mov r11d, ebp
lea rax, [rsp + rdx*8 + 0xaf0]
mov rcx, qword [rax + 0x180]
mov qword [rax], rcx
test r11d, r11d
je 0x1404092b3
mov r14d, r11d
xor r10d, r10d
mov r8d, 1
xor r13d, r13d
shr r14d, 1
je 0x140409281
movsxd rcx, ebp
mov qword [rsp + 0x258], rdi
lea r15, [rsp + rcx*8 + 0xaf0]
lea r12, [rsp + rcx*8 + 0xc70]
lea r8, [rsp + rcx*8 + 0x7f0]
xor ecx, ecx
nop dword [rax]
add r9, qword [r13 + r8]
inc r10
mov rdi, qword [r13 + r12]
add rdi, r9
cmp rdi, r9
mov r9d, ecx
mov qword [r13 + r15], rdi
setb r9b
add r9, qword [r13 + r8 - 8]
mov rdi, qword [r13 + r12 - 8]
add rdi, r9
cmp rdi, r9
mov r9d, ecx
mov qword [r13 + r15 - 8], rdi
setb r9b
add r13, 0xfffffffffffffff0
cmp r10, r14
jb 0x140409230
mov rdi, qword [rsp + 0x258]
lea r8d, [r10 + r10 + 1]
lea ecx, [r8 - 1]
cmp ecx, r11d
jae 0x1404092b0
movsxd r8, r8d
movsxd rcx, ebp
sub rcx, r8
add r9, qword [rsp + rcx*8 + 0x7f8]
add r9, qword [rsp + rcx*8 + 0xc78]
mov qword [rsp + rcx*8 + 0xaf8], r9
mov rcx, qword [rax]
jmp 0x1404092b3
mov rcx, qword [rax]
test rcx, rcx
jne 0x1404092cd
dec rdx
lea rax, [rsp + rdx*8 + 0xaf0]
cmp qword [rax], 0
je 0x1404092b8
lea rbp, [rdx - 1]
mov r8, qword [rsp + 0xaf8]
test r8, r8
jle 0x1404093a3
add r8, r8
dec rbx
mov qword [rsp + 0xaf8], r8
cmp rdx, 2
jb 0x1404093a3
xor r10d, r10d
lea r9, [rdx - 1]
mov ecx, 1
shr r9, 1
je 0x140409372
nop word [rax + rax]
movsxd r13, r10d
inc r10d
shl r13, 4
mov r12, qword [rsp + r13 + 0xb00]
mov rcx, r12
shr rcx, 0x3f
add r12, r12
or r8, rcx
mov qword [rsp + r13 + 0xaf8], r8
mov r8, qword [rsp + r13 + 0xb08]
mov r11, r8
shr r11, 0x3f
add r8, r8
or r12, r11
mov qword [rsp + r13 + 0xb00], r12
cmp r10, r9
jb 0x140409310
lea ecx, [r10 + r10]
movsxd r10, r10d
shl r10, 4
movsxd rcx, ecx
inc rcx
mov qword [rsp + r10 + 0xaf8], r8
dec rcx
lea r9, [rdx - 1]
mov r8d, ecx
cmp r8, r9
jae 0x1404093a3
mov r9, qword [rsp + rcx*8 + 0xb00]
mov r8, r9
shr r8, 0x3f
add r9, r9
or qword [rsp + rcx*8 + 0xaf8], r8
mov qword [rsp + rcx*8 + 0xb00], r9
cmp qword [rax], 0
cmovne rbp, rdx
mov rdx, qword [rsp + 0x268]
shr rdx, 6
cmp rbp, rdx
jb 0x140409464
mov rbp, rdx
mov rax, qword [rsp + rdx*8 + 0xaf8]
shr rax, 0x3f
mov r8, qword [rsp + rdx*8 + 0xaf0]
add r8, rax
cmp r8, rax
jae 0x140409445
mov qword [rsp + rdx*8 + 0xaf0], r8
lea rax, [rsp + rdx*8 + 0xae8]
mov qword [rsp + 0xaf0], 0
lea rbp, [rdx - 1]
mov r8, qword [rax]
cmp r8, 0xffffffffffffffff
jne 0x14040941c
dec rbp
lea rax, [rsp + rbp*8 + 0xaf0]
mov r8, qword [rax]
cmp r8, 0xffffffffffffffff
je 0x140409408
test rbp, rbp
je 0x140409429
inc r8
mov qword [rax], r8
jmp 0x14040946c
movabs r8, 0x8000000000000000
inc rbx
mov qword [rsp + 0xaf8], r8
mov ebp, 1
jmp 0x14040946c
mov qword [rsp + rdx*8 + 0xaf0], r8
test r8, r8
jne 0x14040946c
dec rbp
mov r8, qword [rsp + rbp*8 + 0xaf0]
test r8, r8
je 0x140409452
jmp 0x14040946c
mov r8, qword [rsp + rbp*8 + 0xaf0]
mov rdx, qword [rsp + 0x240]
mov r13, r8
shr r13, 0x20
mov r15d, r8d
mov rax, qword [rsp + rdx*8 + 0xcf0]
mov r11, rax
mov r12d, eax
mov r14, r12
shr r11, 0x20
imul r14, r13
imul r13, r11
mov r8, r14
shr r14, 0x20
add r13, r14
mov r14, r12
imul r14, r15
imul r15, r11
shl r8, 0x20
mov rcx, qword [rsp + 0x420]
add r14, r8
cmp r14, r8
mov r8d, 0
setb r8b
lea rdx, [rbp + rcx + 1]
lea rcx, [rdx - 1]
movsxd r9, ecx
add r13, r8
mov r8, r15
mov r10d, ecx
shl r8, 0x20
add r14, r8
cmp r14, r8
lea rax, [rsp + r9*8 + 0xd70]
mov qword [rax + 8], r14
mov r14d, 0
setb r14b
xor r8d, r8d
shr r15, 0x20
add r13, r15
add r13, r14
lea r15, [rbp - 1]
movsxd r14, r15d
xor r15d, r15d
mov qword [rax], r13
test r14, r14
je 0x140409652
mov qword [rsp + 0x200], rsi
lea r10, [rsp + r9*8 + 0xa70]
mov qword [rsp + 0x218], r10
lea r10, [rsp + r14*8 + 0xaf0]
mov qword [rsp + 0x258], rdi
mov qword [rsp + 0x220], r9
mov dword [rsp + 0x228], ecx
mov qword [rsp + 0x208], rbx
mov qword [rsp + 0x210], rbp
xor ebp, ebp
mov qword [rsp + 0x230], rdx
mov rsi, r10
mov rdi, qword [rsp + 0x218]
mov r10, qword [rsi + r15*8]
mov r9, r10
shr r9, 0x20
mov rdx, r12
imul rdx, r9
imul r9, r11
mov ebx, r10d
mov rcx, r12
imul rcx, rbx
imul rbx, r11
mov r10, rdx
inc r8
shl r10, 0x20
shr rdx, 0x20
add rcx, r10
add r9, rdx
cmp rcx, r10
mov r10, rbx
mov edx, ebp
setb dl
shl r10, 0x20
add rcx, r10
cmp rcx, r10
mov r10d, ebp
setb r10b
add r13, rcx
cmp r13, rcx
mov ecx, ebp
mov qword [rax + r15*8], r13
setb cl
shr rbx, 0x20
mov r13d, r10d
add rdx, rbx
add r9, rdx
add r13, rcx
mov qword [rdi + r15*8], 0
add r13, r9
dec r15
cmp r8, r14
jb 0x140409580
mov r9, qword [rsp + 0x220]
mov r10d, r9d
sub r10d, r8d
shl r8, 3
neg r8
mov ecx, dword [rsp + 0x228]
mov rbx, qword [rsp + 0x208]
mov rbp, qword [rsp + 0x210]
mov rsi, qword [rsp + 0x200]
mov rdx, qword [rsp + 0x230]
mov rdi, qword [rsp + 0x258]
mov qword [r8 + rax], r13
movsxd r14, r10d
mov qword [rsp + r14*8 + 0xa70], 0
lea r11, [r14 - 1]
movsxd r8, r11d
inc r8
dec r10d
cmovns rdi, r8
js 0x140409778
movsxd r13, edi
neg r13
dec r13
neg r13
dec r13
cmp r13, 2
jl 0x14040a4ab
sub r11, rdi
mov r8d, 1
lea r11, [rsp + r11*8 + 0xd78]
and r11, 0xf
cmovne r11, r8
lea r10, [r11 + 2]
cmp r13, r10
jl 0x14040a4ab
mov r8d, r11d
mov r12d, r13d
neg r8d
lea r15, [rdi*8]
add r8d, r12d
lea r10, [rsp + r14*8 + 0xa68]
and r8d, 1
sub r10, r15
sub r12d, r8d
lea r8, [rsp + r14*8 + 0xd68]
sub r8, r15
movsxd r12, r12d
mov qword [rsp + 0x250], 0
test r11, r11
jbe 0x140409729
mov qword [rsp + 0x258], rdi
xor r15d, r15d
mov rdi, qword [rsp + 0x250]
mov qword [r10 + rdi*8 + 8], r15
mov qword [r8 + rdi*8 + 8], r15
inc rdi
cmp rdi, r11
jb 0x14040970f
mov rdi, qword [rsp + 0x258]
movdqu xmmword [r10 + r11*8 + 8], xmm0
movdqu xmmword [r8 + r11*8 + 8], xmm0
add r11, 2
cmp r11, r12
jb 0x140409729
cmp r12, r13
jae 0x140409778
lea r11, [rdi*8]
lea r10, [rsp + r14*8 + 0xa68]
sub r10, r11
lea r8, [rsp + r14*8 + 0xd68]
sub r8, r11
xor r11d, r11d
mov qword [r10 + r12*8 + 8], r11
mov qword [r8 + r12*8 + 8], r11
inc r12
cmp r12, r13
jb 0x140409766
xor r12d, r12d
cmp dword [rsp + 0x248], 0
je 0x1404099d4
movsxd r10, ebp
mov rbp, qword [rsp + 0x420]
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x220], r9
mov dword [rsp + 0x228], ecx
lea r14, [rsp + r10*8 + 0xaf0]
mov qword [rsp + 0x418], r14
lea r13, [rsp + rbp*8 + 0xa70]
mov qword [rsp + 0x408], r13
lea r15, [r10*8]
mov qword [rsp + 0x410], r15
lea r8, [rsp + rbp*8 + 0xd70]
mov qword [rsp + 0x208], rbx
lea r11, [rsp + rbp*8 + 0xcf0]
mov qword [rsp + 0x200], rsi
add rbp, r10
mov qword [rsp + 0x230], rdx
xor r15d, r15d
mov qword [rsp + 0x258], rdi
mov r14, qword [rsp + 0x420]
mov r9, r15
mov rax, r9
test r10, r10
je 0x14040998e
mov rdx, r11
lea rbx, [r12*8]
sub rdx, rbx
mov qword [rsp + 0x430], r8
mov rsi, qword [rsp + rbp*8 + 0xd70]
mov qword [rsp + 0x440], rbp
mov rcx, qword [rdx]
mov rdx, rcx
mov edi, ecx
mov rcx, rbx
neg rbx
add rbx, r8
sub rcx, qword [rsp + 0x410]
shr rdx, 0x20
mov qword [rsp + 0x438], r11
mov qword [rsp + 0x428], r12
lea r13, [rbx + r10*8]
mov rbx, r8
sub rbx, rcx
neg rcx
add rcx, qword [rsp + 0x408]
mov r8, qword [rsp + 0x418]
mov r12, qword [r8 + rax*8]
mov rbp, r12
dec rax
mov r15, rdi
mov qword [rsp + 0x460], rax
mov rax, rdi
shr rbp, 0x20
imul rax, rbp
imul rbp, rdx
mov r11d, r12d
mov r14, rax
imul r15, r11
imul r11, rdx
shl r14, 0x20
mov r12, r11
shr rax, 0x20
add r15, r14
shl r12, 0x20
add rbp, rax
xor eax, eax
cmp r15, r14
mov r14d, eax
setb r14b
add r15, r12
cmp r15, r12
mov r12d, eax
setb r12b
add rsi, r15
cmp rsi, r15
mov r15d, eax
setb r15b
shr r11, 0x20
add r14, r11
add rbp, r14
add r12, r15
add rbp, r12
lea r11, [r9*8]
mov r12, r13
inc r9
sub r12, r11
mov qword [r12], rsi
mov rsi, rbx
sub rsi, r11
neg r11
add r11, rcx
mov rsi, qword [rsi - 8]
add rsi, rbp
cmp rsi, rbp
setb al
add qword [r11 - 0x10], rax
mov rax, qword [rsp + 0x460]
cmp r9, r10
jb 0x140409898
shl r9, 3
xor r15d, r15d
sub r13, r9
mov rbp, qword [rsp + 0x440]
mov r11, qword [rsp + 0x438]
mov r8, qword [rsp + 0x430]
mov r12, qword [rsp + 0x428]
mov r14, qword [rsp + 0x420]
mov qword [r13], rsi
inc r12
dec rbp
cmp r12, r14
jb 0x140409819
mov rax, qword [rsp + 0x1f8]
mov r9, qword [rsp + 0x220]
mov ecx, dword [rsp + 0x228]
mov rbx, qword [rsp + 0x208]
mov rsi, qword [rsp + 0x200]
mov rdx, qword [rsp + 0x230]
mov rdi, qword [rsp + 0x258]
mov rbp, qword [rsp + rdx*8 + 0xd70]
lea rbx, [rbx + rsi - 0x3ffe]
mov qword [rsp + rdx*8 + 0xcf0], rbp
xor r13d, r13d
test ecx, ecx
je 0x140409a9d
mov ebp, ecx
xor r11d, r11d
mov esi, 1
xor r12d, r12d
shr ebp, 1
je 0x140409a66
lea rsi, [rsp + r9*8 + 0xcf0]
xor r8d, r8d
lea r10, [rsp + r9*8 + 0xa70]
nop dword [rax + rax]
add r13, qword [r12 + r10]
inc r11
mov r14, qword [r12 + rax]
add r14, r13
cmp r14, r13
mov r13d, r8d
mov r15, qword [r12 + rax - 8]
setb r13b
add r13, qword [r12 + r10 - 8]
add r15, r13
cmp r15, r13
mov r13d, r8d
mov qword [r12 + rsi], r14
setb r13b
mov qword [r12 + rsi - 8], r15
add r12, 0xfffffffffffffff0
cmp r11, rbp
jb 0x140409a20
lea esi, [r11 + r11 + 1]
lea eax, [rsi - 1]
cmp eax, ecx
jae 0x140409a95
movsxd rsi, esi
sub r9, rsi
add r13, qword [rsp + r9*8 + 0xa78]
add r13, qword [rsp + r9*8 + 0xd78]
mov qword [rsp + r9*8 + 0xcf8], r13
mov rbp, qword [rsp + rdx*8 + 0xcf0]
jmp 0x140409a9d
mov rbp, qword [rsp + rdx*8 + 0xcf0]
test rbp, rbp
jne 0x14040a49e
dec rdx
lea rcx, [rsp + rdx*8 + 0xcf0]
cmp qword [rcx], 0
je 0x140409aa6
mov rax, qword [rsp + 0xcf8]
test rax, rax
jle 0x140409b92
add rax, rax
dec rbx
mov qword [rsp + 0xcf8], rax
cmp rdx, 2
jb 0x140409b92
xor esi, esi
lea rbp, [rdx - 1]
mov r8d, 1
shr rbp, 1
je 0x140409b61
nop dword [rax + rax]
nop dword [rax]
movsxd r11, esi
inc esi
shl r11, 4
mov r10, qword [rsp + r11 + 0xd00]
mov r8, r10
shr r8, 0x3f
add r10, r10
or rax, r8
mov qword [rsp + r11 + 0xcf8], rax
mov rax, qword [rsp + r11 + 0xd08]
mov r9, rax
shr r9, 0x3f
add rax, rax
or r10, r9
mov qword [rsp + r11 + 0xd00], r10
cmp rsi, rbp
jb 0x140409b00
lea r8d, [rsi + rsi]
movsxd rsi, esi
shl rsi, 4
movsxd r8, r8d
inc r8
mov qword [rsp + rsi + 0xcf8], rax
dec r8
lea rbp, [rdx - 1]
mov eax, r8d
cmp rax, rbp
jae 0x140409b92
mov rbp, qword [rsp + r8*8 + 0xd00]
mov rax, rbp
shr rax, 0x3f
add rbp, rbp
or qword [rsp + r8*8 + 0xcf8], rax
mov qword [rsp + r8*8 + 0xd00], rbp
cmp qword [rcx], 1
sbb rdx, 0
test rbx, rbx
jg 0x140405d2e
neg rbx
test ebx, ebx
je 0x140409cb0
mov r12d, ebx
lea r10, [rdx - 1]
neg r12d
mov r11d, r10d
mov rax, qword [rsp + rdx*8 + 0xcf0]
mov ecx, r12d
mov rbp, rax
shl rbp, cl
mov ecx, ebx
shr rax, cl
mov qword [rsp + rdx*8 + 0xcf8], rbp
mov qword [rsp + rdx*8 + 0xcf0], rax
test r11d, r11d
je 0x140409ca7
mov eax, r11d
xor r9d, r9d
mov r13d, 1
xor r8d, r8d
shr eax, 1
je 0x140409c5d
movsxd rbp, r10d
lea rbp, [rsp + rbp*8 + 0xcf0]
mov rsi, qword [rbp + 8]
mov r15, qword [r8 + rbp]
mov ecx, r12d
mov r13, r15
inc r9
shl r13, cl
mov ecx, ebx
or rsi, r13
mov qword [r8 + rbp + 8], rsi
mov rsi, qword [r8 + rbp - 8]
mov r14, rsi
shr r15, cl
mov ecx, r12d
shl r14, cl
mov ecx, ebx
or r15, r14
mov qword [r8 + rbp], r15
add r8, 0xfffffffffffffff0
shr rsi, cl
cmp r9, rax
jb 0x140409c0c
lea r13d, [r9 + r9 + 1]
shl r9, 4
neg r9
mov qword [rbp + r9 + 8], rsi
lea eax, [r13 - 1]
cmp eax, r11d
jae 0x140409c9f
movsxd rsi, r10d
mov ecx, r12d
movsxd r13, r13d
sub rsi, r13
mov rbp, qword [rsp + rsi*8 + 0xcf8]
mov rax, rbp
shl rax, cl
mov ecx, ebx
shr rbp, cl
or qword [rsp + rsi*8 + 0xd00], rax
mov qword [rsp + rsi*8 + 0xcf8], rbp
mov rbp, qword [rsp + rdx*8 + 0xcf8]
jmp 0x140409ca7
mov rbp, qword [rsp + rdx*8 + 0xcf8]
xor eax, eax
cmp rax, rbp
adc rdx, 0
mov rbx, qword [rsp + 0x288]
mov r9d, 0x27
cmp rbx, 0x27
mov r10, qword [rsp + 0x368]
cmovle r9, rbx
mov rsi, qword [rsp + 0x278]
mov r12, rsi
mov byte [r10], 0x30
xor r10d, r10d
cmp r9d, dword [rsp + 0x290]
jle 0x140409ecd
sub r9d, dword [rsp + 0x290]
movsxd r9, r9d
je 0x140409ecd
xor r8d, r8d
xor ebp, ebp
mov qword [rsp + 0x258], rdi
xor edi, edi
mov qword [rsp + 0x260], r12
mov rax, qword [rsp + 0x368]
mov qword [rsp + 0xcf0], 0
mov ebx, ebp
test rdx, rdx
je 0x140409e9b
mov ebx, edx
mov rcx, rdi
mov r14, qword [rsp + rdx*8 + 0xcf0]
mov qword [rsp + rdx*8 + 0xcf0], 0
test ebx, ebx
je 0x140409e8c
mov ecx, ebx
mov r11, rdi
mov r15d, 1
mov rsi, r11
shr ecx, 1
je 0x140409e1f
movsxd r12, edx
lea r13, [rsp + r12*8 + 0xcf0]
mov r12, qword [r13]
mov eax, ebp
lea r15, [r14 + r14*4]
cmp r15, r14
lea r12, [r12 + r15*2]
mov qword [rsi + r13], r12
setb al
inc r11
shr r14, 0x3e
add r14, rax
mov rax, r15
add r15, r15
add r14, r14
cmp r12, r15
mov r15d, ebp
mov r12, qword [rsi + r13 - 8]
setb r15b
shr rax, 0x3f
or r14, rax
add r14, r15
lea rax, [r12 + r12*4]
cmp rax, r12
mov r15d, ebp
setb r15b
shr r12, 0x3e
lea r14, [r14 + rax*2]
add r12, r15
mov r15, rax
add rax, rax
add r12, r12
cmp r14, rax
mov eax, ebp
mov qword [rsi + r13 - 8], r14
setb al
shr r15, 0x3f
or r12, r15
mov r14, qword [rsi + r13 - 0x10]
add r12, rax
add rsi, 0xfffffffffffffff0
cmp r11, rcx
jb 0x140409d7b
mov rax, qword [rsp + 0x368]
lea r15d, [r11 + r11 + 1]
shl r11, 4
neg r11
mov qword [r13 + r11], r12
lea ecx, [r15 - 1]
cmp ecx, ebx
jae 0x140409e84
movsxd r15, r15d
lea rbx, [r14 + r14*4]
movsxd rcx, edx
cmp rbx, r14
mov esi, ebp
lea r12, [rbx + rbx]
setb sil
sub rcx, r15
shr r14, 0x3e
add r14, rsi
mov esi, ebp
mov r11, qword [rsp + rcx*8 + 0xcf8]
add r14, r14
lea r13, [r11 + rbx*2]
shr rbx, 0x3f
cmp r13, r12
mov qword [rsp + rcx*8 + 0xcf8], r13
setb sil
or r14, rbx
add r14, rsi
mov qword [rsp + rcx*8 + 0xcf0], r14
mov rcx, qword [rsp + rdx*8 + 0xcf0]
jmp 0x140409e8c
mov rcx, qword [rsp + rdx*8 + 0xcf0]
cmp rcx, 1
mov ebx, dword [rsp + 0xcf0]
sbb rdx, 0
add r10, 0x35269
lea ecx, [rbx + 0x30]
mov byte [r8 + rax + 1], cl
lea rsi, [r8 + rax + 2]
inc r8
cmp r8, r9
jb 0x140409d1e
mov rdi, qword [rsp + 0x258]
mov r12, qword [rsp + 0x260]
jmp 0x140409ed4
mov ebx, dword [rsp + 0xcf0]
mov r8, qword [rsp + 0x268]
add r10, 0xffff
shr r10, 0x10
movabs rbp, 0x8000000000000000
mov byte [rsi], 0
lea r14, [r8 + 0x3f]
and r14, 0xffffffffffffffc0
mov r11, r14
sub r11, r8
add r11, r10
mov r13d, r11d
mov ecx, r13d
mov r10, qword [rsp + 0x270]
mov r8, qword [rsp + 0xcf8]
shl r10, cl
sub r8, rbp
je 0x140409f2d
xor eax, eax
cmp rbp, r8
setne al
jmp 0x140409f2f
xor eax, eax
xor r15d, r15d
xor ebp, ebp
test r8, r8
setns bpl
and ebx, 1
mov edx, dword [rsp + 0x2a0]
lea edx, [rbp + rdx*8]
lea r9d, [rbx + rbx]
lea ebx, [rdx + rbx*2]
mov edx, dword [rsp + 0x280]
lea ecx, [rbx + rax*4]
shr edx, cl
lea rbx, [r8 + r10]
and edx, 1
lea rax, [r10 + r10]
cmp rbx, rax
mov rbx, r14
setbe r15b
sub rbx, r11
cmp rbx, 0x40
jb 0x14040a135
lea rbx, [r8 + 1]
cmp rbx, 1
ja 0x14040a460
shr r14, 6
mov ecx, r13d
shr r11, 6
mov edx, r14d
mov r10, qword [rsp + 0x270]
sub edx, r11d
shl r10, cl
mov eax, edx
mov r15, r10
mov rcx, r10
cmp edx, 1
jle 0x14040a0e1
xor r13d, r13d
lea r11d, [rdx - 1]
mov ebx, 1
xor ebp, ebp
shr r11d, 1
je 0x14040a08e
movsxd rdx, edx
mov qword [rsp + 0x258], rdi
mov qword [rsp + 0x260], r12
xor r12d, r12d
mov qword [rsp + 0x188], rsi
lea rbx, [rsp + rdx*8 + 0xcf0]
nop dword [rax]
nop dword [rax]
mov rdi, qword [rbp + rbx]
test rdi, rdi
mov r14d, r12d
setne r14b
add r15, rdi
neg rcx
mov rsi, qword [rbp + rbx - 8]
or r8, r14
test rsi, rsi
mov r14d, r12d
setne r14b
cmp r15, rdi
mov r15d, r12d
setb r15b
add rcx, rdi
inc r13d
add r15, rsi
add rbp, 0xfffffffffffffff0
cmp r15, rsi
mov r15d, r12d
setb r15b
cmp rcx, rdi
mov ecx, r12d
seta cl
or r8, r14
neg rcx
add rcx, rsi
cmp rcx, rsi
mov ecx, r12d
seta cl
cmp r13d, r11d
jb 0x14040a000
mov rdi, qword [rsp + 0x258]
lea ebx, [r13 + r13]
neg ebx
mov r12, qword [rsp + 0x260]
add edx, ebx
mov rsi, qword [rsp + 0x188]
lea ebx, [r13 + r13 + 1]
lea ebp, [rbx - 1]
lea r11d, [rax - 1]
cmp ebp, r11d
jae 0x14040a490
movsxd rax, eax
xor ebp, ebp
mov edx, eax
xor r11d, r11d
sub edx, ebx
neg rcx
movsxd rbx, ebx
sub rax, rbx
mov r13, qword [rsp + rax*8 + 0xcf8]
test r13, r13
setne r11b
add r15, r13
cmp r15, r13
mov r15d, ebp
setb r15b
add rcx, r13
cmp rcx, r13
mov ecx, ebp
seta cl
or r8, r11
setge bpl
movsxd rdx, edx
mov rbx, qword [rsp + rdx*8 + 0xcf0]
add r15, rbx
sub rbx, rcx
xor r15, rbx
shr r15, 0x3f
test r8, r8
je 0x14040a115
movabs rdx, 0x8000000000000000
cmp rdx, r8
mov edx, 0
setne dl
jmp 0x14040a117
xor edx, edx
mov ebx, dword [rsp + 0x2a0]
lea r8d, [r9 + rbx*8]
add r8d, ebp
lea ecx, [r8 + rdx*4]
mov edx, dword [rsp + 0x280]
shr edx, cl
and edx, 1
test r15d, r15d
je 0x14040a460
test r10, r10
je 0x14040a460
cmp qword [rsp + 0x268], 0x80
jae 0x14040a403
mov qword [rsp + 0x268], 0x80
jmp 0x140405fe1
mov rax, qword [rsp + 0x1c0]
lea rdi, [0x140000000]
mov rsi, qword [rsp + 0x200]
mov r11, qword [rsp + 0x268]
jmp 0x1404070fa
cmp r8, 0x10
jl 0x14040a1cd
mov rdx, r8
xor eax, eax
movdqu xmm0, xmmword [0x1405a00e0]
and rdx, 0xfffffffffffffff0
movdqu xmmword [rax + rbp], xmm0
add rax, 0x10
cmp rax, rdx
jb 0x14040a1a5
cmp rdx, r8
jae 0x140405484
mov byte [rdx + rbp], 0x30
inc rdx
cmp rdx, r8
jb 0x14040a1bc
jmp 0x140405484
xor edx, edx
jmp 0x14040a1b3
call fcn.14043dac0
cmp r8, 0x10
jl 0x14040a217
mov edx, r8d
xor ebx, ebx
and edx, 0xfffffff0
movdqu xmm0, xmmword [0x1405a00e0]
movsxd rdx, edx
movdqu xmmword [rbx + rsi], xmm0
add rbx, 0x10
cmp rbx, rdx
jb 0x14040a1ef
cmp rdx, r8
jae 0x140405c08
mov byte [rdx + rsi], 0x30
inc rdx
cmp rdx, r8
jb 0x14040a206
jmp 0x140405c08
xor edx, edx
jmp 0x14040a1fd
mov rdx, qword [rsp + 0xe78]
dec r12
inc dword [rdx]
cmp dword [rsp + 0x298], 0
je 0x14040a237
mov byte [r12], 0x38
test bl, 2
je 0x140405bc3
inc r13
mov rdx, qword [rsp + 0x3f8]
cmp r13, rdx
cmovge r13, rdx
jmp 0x140405bc3
test r11, r11
jne 0x1404059a3
cmp r15, rax
jae 0x14040a27b
inc r15
mov r11d, 0x10
mov r10, qword [rsp + r15*8 + 0xcf0]
jmp 0x1404059a3
mov dword [rsp + 0x30], edi
mov r8d, dword [rsp + 0x198]
mov edi, dword [rsp + 0x1a0]
mov ebx, dword [rsp + 0x190]
jmp 0x140405ac6
cmp qword [rsp + 0x3f8], 0
ja 0x140405a7b
jmp 0x140405ad6
test r11d, r11d
jne 0x14040a2c7
test r12d, r12d
je 0x14040a2bd
test r13, r13
js 0x14040a2c7
test r9d, r9d
jne 0x14040a2ed
jmp 0x140405de9
mov rax, qword [rsp + 0xe78]
mov qword [rsp + 0x1b8], r8
mov rbp, qword [rsp + 0x368]
mov ebx, dword [rsp + 0x190]
mov dword [rax], edi
jmp 0x1404053f7
mov eax, dword [rsp + 0x2a0]
mov edx, dword [rsp + 0x280]
mov rbp, qword [rsp + 0x368]
mov ebx, dword [rsp + 0x190]
lea ecx, [rax*8 + 4]
shr edx, cl
mov qword [rsp + 0x1b8], r8
test dl, 1
je 0x14040a354
mov rdx, r8
mov r12, rbp
mov edi, edx
xor ebx, ebx
test edx, edx
mov edx, 0
mov r8, qword [rsp + 0xe78]
sete bl
neg edi
mov byte [rbp], 0x31
add edi, ebx
mov rsi, qword [rsp + 0x278]
mov dword [r8], edi
jmp 0x140405c0f
mov rax, qword [rsp + 0xe78]
mov dword [rax], edi
jmp 0x1404053f7
mov r8, qword [rsp + 0xaf8]
jmp 0x14040946c
xor r8d, r8d
jmp 0x140406348
mov rdx, qword [rsp + 0xaf8]
jmp 0x1404061ff
mov r12, rax
mov rbx, r12
neg rbx
lea rax, [0x140000000]
mov rdx, rbx
shr rdx, 3
movsxd r9, edx
movzx ecx, word [rax + r9*2 + 0x5a0da0]
lea r8, [r9 + 1]
shr ecx, 5
cmp rcx, rbx
cmovl r9, r8
movzx r11d, word [rax + r9*2 + 0x5a0da0]
mov r10d, r11d
shr r11d, 5
and r10d, 0x1f
movsx r13, word [rax + r10*2 + 0x5a0efa]
add r11, r12
movsxd rbx, r11d
mov qword [rsp + 0x158], r13
mov rcx, qword [rax + r10*8 + 0x5a0d20]
jmp 0x1404061be
xor r14d, r14d
jmp 0x140406a48
mov r8, qword [rsp + 0xb00]
jmp 0x140408c9c
mov r11d, dword [rsp + 0x2a0]
mov edx, dword [rsp + 0x280]
mov r10, qword [rsp + 0x180]
mov r13, qword [rsp + 0x288]
lea ecx, [r9 + r11*8 + 1]
shr edx, cl
mov r8d, dword [rsp + 0x198]
mov edi, dword [rsp + 0x1a0]
and edx, 1
mov rbp, qword [rsp + 0x368]
mov ebx, dword [rsp + 0x190]
test edx, edx
jne 0x140405b96
test r13, r13
jle 0x1404053f7
jmp 0x140405bc3
mov r10, qword [rsp + 0x180]
mov r13, qword [rsp + 0x288]
mov r8d, dword [rsp + 0x198]
mov edi, dword [rsp + 0x1a0]
mov rbp, qword [rsp + 0x368]
mov ebx, dword [rsp + 0x190]
jmp 0x14040a44a
xor ebp, ebp
test r8, r8
setge bpl
jmp 0x14040a0e1
lea rcx, [rsp + rdx*8 + 0xcf0]
jmp 0x140409ab7
xor r12d, r12d
jmp 0x140409740
xor edx, edx
jmp 0x140408f3d
xor r12d, r12d
jmp 0x14040875e
xor r13d, r13d
jmp 0x140407efb
mov r8, qword [rsp + 0xaf8]
jmp 0x140407c0f
mov rdx, qword [0x1405a07c8]
mov ebp, 2
mov r8, qword [0x1405a07c0]
movsx rbx, word [0x1405a0942]
mov qword [rsp + 0xaf8], rdx
mov qword [rsp + 0xb00], r8
jmp 0x14040849c
mov r9, rdx
lea rbx, [0x140000000]
neg r9
mov rbp, r9
shr rbp, 3
movsxd r11, ebp
movzx r8d, word [rbx + r11*2 + 0x5a06e0]
lea r10, [r11 + 1]
shr r8d, 5
cmp r8, r9
cmovl r11, r10
movzx r14d, word [rbx + r11*2 + 0x5a06e0]
mov r13d, r14d
and r13d, 0x1f
movsx r15, word [rbx + r13*2 + 0x5a0926]
shl r13, 4
shr r14d, 5
add rdx, r14
movsxd rdx, edx
mov r14, qword [rbx + r13 + 0x5a0648]
mov rbx, qword [rbx + r13 + 0x5a0640]
mov qword [rsp + 0x130], r15
mov qword [rsp + 0x878], r14
mov qword [rsp + 0x880], rbx
jmp 0x140407b78
mov qword [rsp + 0xa0], 0
jmp 0x140407452