Function at 0x14040a5a0
Capabilities:
Encrypt data using speck

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0x4a8
mov rdi, rcx
movsxd r10, dword [rsp + 0x510]
xor r14d, r14d
mov r11d, dword [rsp + 0x518]
mov esi, r9d
mov qword [rsp + 0x4f0], rdi
mov r12, rdx
mov qword [rsp + 0x70], r10
xor edx, edx
mov dword [rsp + 0x78], r11d
mov r15d, r8d
mov r9, qword [0x14194d6d8]
xor ebp, ebp
xor r9, rsp
pxor xmm0, xmm0
mov qword [rsp + 0x4a0], r9
mov r10, r12
mov r13, qword [rsp + 0x520]
mov r9d, r15d
movdqu xmmword [rsp + 0x190], xmm0
movdqu xmmword [rsp + 0x1a0], xmm0
movdqu xmmword [rsp + 0x1b0], xmm0
movdqu xmmword [rsp + 0x430], xmm0
movdqu xmmword [rsp + 0x1c0], xmm0
movdqu xmmword [rsp + 0x440], xmm0
movdqu xmmword [rsp + 0x1d0], xmm0
movdqu xmmword [rsp + 0x450], xmm0
movdqu xmmword [rsp + 0x1e0], xmm0
movdqu xmmword [rsp + 0x460], xmm0
movdqu xmmword [rsp + 0x1f0], xmm0
movdqu xmmword [rsp + 0x470], xmm0
movdqu xmmword [rsp + 0x200], xmm0
movdqu xmmword [rsp + 0x480], xmm0
movdqu xmmword [rsp + 0x410], xmm0
movdqu xmmword [rsp + 0x420], xmm0
mov qword [rsp + 0x490], r14
mov qword [rsp + 0x498], r14
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0xf0], rbp
test esi, 0x8010000
je 0x14040a6e3
mov ecx, 0x2c
test esi, 0x10000
jne 0x14040f745
jmp 0x14040a6e8
mov ecx, 0x2e
test r15d, r15d
jle 0x14040fe35
mov r11d, esi
mov eax, esi
and r11d, 0x80
and eax, 0x80000000
movsxd rax, eax
mov rbx, r11
shl r11, 0x18
and rax, r11
shl rbx, 4
shr rax, 0x13
or rbx, rax
test esi, 0x20
je 0x14040fe2d
mov r11d, r15d
xor eax, eax
shr r11d, 1
je 0x14040fe22
mov qword [rsp + 0x108], r13
mov qword [rsp + 0x100], rdi
mov dword [rsp + 0xf8], esi
movsx edi, byte [r10 + rax*2]
lea esi, [rdi - 9]
cmp esi, 4
ja 0x14040fdfd
mov ebp, eax
lea r13, [r10 + rax*2]
add ebp, ebp
lea r12, [r13 + 1]
movsx edi, byte [r13 + 1]
neg ebp
lea esi, [rdi - 9]
lea r15d, [rbp + r9 - 1]
cmp esi, 4
ja 0x14040fdd8
inc rax
lea r12, [r13 + 2]
lea r15d, [rbp + r9 - 2]
cmp rax, r11
jb 0x14040a74b
mov r13, qword [rsp + 0x108]
add eax, eax
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
cmp eax, r9d
jae 0x14040a7d3
movsxd r11, eax
movsx ebp, byte [r10 + r11]
mov dword [rsp + 0x20], ebp
lea ebp, [rbp - 9]
cmp ebp, 4
ja 0x14040fdc8
sub r9d, eax
lea r12, [r10 + r11 + 1]
lea r15d, [r9 - 1]
mov rbp, r12
test r15d, r15d
je 0x14040abe7
mov r9b, byte [r12]
cmp r9b, 0x2d
jne 0x14040a7ef
add rbx, 8
jmp 0x14040a7f5
cmp r9b, 0x2b
jne 0x14040a805
add rbx, 2
inc r12
dec r15d
je 0x14040abe7
movsx r11, cl
mov r10d, 0x13
mov qword [rsp + 0x108], r13
mov ecx, 1
mov qword [rsp + 0x58], r14
xor r9d, r9d
mov qword [rsp + 0x20], r8
mov qword [rsp + 0x100], rdi
mov r13, qword [rsp + 0x50]
movsx edi, byte [r12]
lea r14d, [rdi - 0x2b]
cmp r14d, 0x4d
ja 0x14040aacf
lea r8, [0x140000000]
movzx eax, word [r8 + r14*2 + 0x5a0124]
lea rax, [r8 + rax + 0x40a863]
jmp rax
cmp edi, 9
jne 0x14040aae2
test esi, 1
jne 0x14040abbc
jmp 0x14040aafb
cmp edi, 0x20
jne 0x14040aafb
test esi, 2
jne 0x14040abbc
test esi, 0x40
jne 0x14040ab1d
cmp edi, r11d
jne 0x14040fb0f
test rbx, 1
jne 0x14040fb0f
or rbx, 1
xor r13d, r13d
jmp 0x14040abbc
mov edi, 0x30
cmp qword [rsp + 0x60], 0
je 0x14040aba8
movsxd rdi, edi
add rdi, 0xffffffffffffffd0
or rbx, 4
xor r14d, r14d
mov rax, rbx
and rax, 0x201
cmp rax, 0x200
sete r14b
neg r14
inc qword [rsp + 0x60]
lea r13, [r13 + r14 + 1]
cmp r10, qword [rsp + 0x48]
je 0x14040ab73
mov rax, rdx
shl rax, cl
inc qword [rsp + 0x48]
lea rdx, [rax + rdx*8]
add rdx, rdi
jmp 0x14040abbc
cmp qword [rsp + 0x68], 2
jae 0x14040ab9e
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x48], 1
mov qword [rsp + rax*8 + 0x198], rdx
inc rax
mov qword [rsp + 0x68], rax
mov rdx, rdi
jmp 0x14040abbc
or qword [rsp + 0xf0], rdi
jmp 0x14040abbc
mov rax, rbx
or rbx, 4
and rax, 1
sub r9, rax
add r13, rax
inc r9
inc r12
dec r15d
jne 0x14040a836
mov qword [rsp + 0x50], r13
mov r14, qword [rsp + 0x58]
mov r8, qword [rsp + 0x20]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov rax, r12
test rbx, 4
mov r10, rbx
cmovne rbp, rax
and r10, 0x40
cmovne rbp, r12
test esi, 0x8000
je 0x14040ac2f
test esi, 0x80000000
je 0x14040ac1e
test r15d, r15d
je 0x14040ac2f
cmp byte [r12], 0
jne 0x14040ac23
jmp 0x14040ac2f
test r15d, r15d
je 0x14040ac2f
or rbx, 0x3000000
jmp 0x14040f69b
mov rcx, rbx
and rcx, 0x200
je 0x14040ac48
mov r9, rbx
and r9, 0x54
cmp r9, 0x54
jne 0x14040ac23
cmp qword [rsp + 0x60], 0
jne 0x14040ac93
mov rcx, rbx
and rcx, 0xc
cmp rcx, 0xc
jne 0x14040ac72
mov rcx, qword [rsp + 0x498]
btc rcx, 0x3f
mov qword [rsp + 0x498], rcx
mov ecx, esi
mov r8, rbx
and ecx, 0x28000
or r8, 0x3000000
cmp ecx, 0x28000
cmove rbx, r8
jmp 0x14040f69b
test rbx, 0x20
je 0x14040aca1
test r10, r10
je 0x14040ac23
test rbx, 0x10
je 0x14040acf4
cmp r8, 6
jbe 0x14040accc
mov r11, rbx
and r11, 8
movsxd r10, esi
test rbx, 0x80
jne 0x14040f557
jmp 0x14040f481
mov r8, r14
xor r9d, r9d
neg r8
test rbx, 0x80
movsxd r10, dword [rsp + 0x78]
cmovne r14, r8
test esi, 0x400
cmove r10, r9
sub r14, r10
jmp 0x14040acff
mov r14d, dword [rsp + 0x78]
neg r14d
movsxd r14, r14d
test rcx, rcx
je 0x14040af8b
mov rcx, qword [rsp + 0x48]
shl rcx, 2
neg rcx
shl rdx, cl
cmp qword [rsp + 0x60], 0x10
ja 0x14040ad5c
mov ecx, 1
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0x28], 0
test rdx, rdx
jle 0x14040ad4f
mov rcx, qword [rsp + 0x28]
add rdx, rdx
inc rcx
test rdx, rdx
jg 0x14040ad3f
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x418], rdx
jmp 0x14040af73
mov rcx, qword [rsp + 0x68]
lea r8, [rcx + 1]
mov qword [rsp + 0xe8], r8
mov qword [rsp + r8*8 + 0x190], rdx
test rdx, rdx
jne 0x14040ad93
mov rcx, r8
dec rcx
cmp qword [rsp + rcx*8 + 0x190], 0
je 0x14040ad7d
mov qword [rsp + 0xe8], rcx
mov r10, qword [rsp + 0x198]
mov qword [rsp + 0x28], 0
test r10, r10
jle 0x14040aee0
mov rcx, qword [rsp + 0x28]
add r10, r10
inc rcx
test r10, r10
jg 0x14040adb2
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x198], r10
cmp qword [rsp + 0x28], 0
je 0x14040aee0
mov qword [rsp + 0x418], r10
cmp qword [rsp + 0xe8], 1
jbe 0x14040af73
mov rcx, qword [rsp + 0xe8]
mov r11d, 1
xor r9d, r9d
lea r8, [rcx - 1]
shr r8, 1
je 0x14040ae91
mov r15, qword [rsp + 0x28]
mov rax, r15
neg rax
mov dword [rsp + 0xf8], esi
nop dword [rax]
movsxd rsi, r9d
mov ecx, eax
shl rsi, 4
inc r9d
mov r11, qword [rsp + rsi + 0x1a0]
mov rdx, r11
shr rdx, cl
mov ecx, r15d
or r10, rdx
mov qword [rsp + rsi + 0x418], r10
mov r10, qword [rsp + rsi + 0x1a8]
mov rdx, r10
shl r11, cl
mov ecx, eax
shr rdx, cl
mov ecx, r15d
shl r10, cl
or r11, rdx
mov qword [rsp + rsi + 0x420], r11
cmp r9, r8
jb 0x14040ae20
mov esi, dword [rsp + 0xf8]
lea r11d, [r9 + r9]
movsxd r9, r9d
shl r9, 4
movsxd r11, r11d
inc r11
mov qword [rsp + r9 + 0x418], r10
mov rcx, qword [rsp + 0xe8]
dec r11
mov r8d, r11d
lea r9, [rcx - 1]
cmp r8, r9
jae 0x14040af73
mov r9, qword [rsp + 0x28]
mov rcx, r9
neg rcx
mov r10, qword [rsp + r11*8 + 0x1a0]
mov r8, r10
shr r8, cl
mov ecx, r9d
shl r10, cl
or qword [rsp + r11*8 + 0x418], r8
mov qword [rsp + r11*8 + 0x420], r10
jmp 0x14040af73
mov rcx, qword [rsp + 0xe8]
test ecx, ecx
je 0x14040af73
cmp ecx, 0xc
jle 0x14040fb33
xor r15d, r15d
lea r8, [rsp + 0x190]
xor r11d, r11d
lea r9, [rsp + 0x410]
sub r9, r8
movsxd r8, dword [r8 - 0xa8]
lea r10, [r8*8]
mov qword [rsp + 0x20], r10
cmp r9, r10
setg r15b
neg r9
cmp r9, r10
setg r11b
or r15d, r11d
je 0x14040fb33
lea r9d, [rcx*8 - 8]
movsxd r9, r9d
lea r11, [rsp + 0x410]
sub r11, r9
lea r10, [rsp + 0x190]
sub r10, r9
lea rcx, [r11 + r8*8]
lea rdx, [r10 + r8*8]
mov r8, qword [rsp + 0x20]
call fcn.14042ae90
mov rcx, qword [rsp + 0x60]
sub rcx, qword [rsp + 0x50]
lea r8, [r14 + rcx*4]
sub r8, qword [rsp + 0x28]
jmp 0x14040f0d0
mov rcx, qword [rsp + 0x50]
neg rcx
add rcx, r14
sub r14, qword [rsp + 0x70]
test rbx, 1
cmovne r14, rcx
movsxd rcx, dword [rsp + 0x60]
add rcx, r14
cmp rcx, 0xffffffffffffec9b
jge 0x14040afc6
mov r11, rbx
movsxd r10, esi
and r11, 8
jmp 0x14040f557
cmp rcx, 0x1345
jle 0x14040afde
mov r11, rbx
movsxd r10, esi
and r11, 8
jmp 0x14040f481
mov r8, qword [rsp + 0x60]
xor r9d, r9d
lea rcx, [r8 - 0x39]
test rcx, rcx
cmovle rcx, r9
mov qword [rsp + 0x50], rcx
lea r9, [r14 + rcx]
cmp r8, 0x13
ja 0x14040b034
mov ecx, 1
xor r8d, r8d
mov qword [rsp + 0xe8], rcx
test rdx, rdx
jle 0x14040b020
add rdx, rdx
inc r8
test rdx, rdx
jg 0x14040b015
neg r8
mov qword [rsp + 0x418], rdx
add r8, 0x40
jmp 0x14040b6f6
mov r10, qword [rsp + 0x68]
xor r8d, r8d
mov qword [rsp + r10*8 + 0x198], rdx
lea r11, [r10 + 1]
mov rcx, qword [rsp + 0x198]
mov qword [rsp + 0xe8], r11
mov qword [rsp + 0x118], rcx
mov r10, qword [0x1405a0fd8]
cmp r11, 2
mov r11d, 0
jb 0x14040b389
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x100], rdi
mov dword [rsp + 0xf8], esi
mov qword [rsp + 0xa8], rbx
lea rcx, [rcx - 1]
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x58], r14
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x108], r13
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x48]
cmp r8, rcx
jne 0x14040b0d7
lea rax, [0x140000000]
mov r10, qword [rax + rdi*8 + 0x5a0f40]
inc r11d
xor ebp, ebp
mov r13d, r11d
mov ebx, 1
mov rax, qword [rsp + 0x118]
xor r14d, r14d
mov qword [rsp + 0x118], 0
mov edx, r10d
shr r13d, 1
je 0x14040b242
mov r9, r10
xor r12d, r12d
shr r9, 0x20
mov qword [rsp + 0x20], r10
mov rbx, rax
mov r10, rdx
shr rbx, 0x20
inc rbp
mov esi, eax
mov rax, rdx
imul rax, rbx
imul r10, rsi
imul rbx, r9
imul rsi, r9
mov rdi, rax
shl rdi, 0x20
shr rax, 0x20
add r10, rdi
add rbx, rax
xor eax, eax
cmp r10, rdi
mov rdi, rsi
setb al
shl rdi, 0x20
add r10, rdi
cmp r10, rdi
mov edi, 0
mov r15, qword [rsp + r14 + 0x120]
setb dil
add r12, r10
cmp r12, r10
mov qword [rsp + r14 + 0x118], r12
mov r12d, 0
setb r12b
add rdi, r12
shr rsi, 0x20
mov r12, r15
shr r12, 0x20
add rax, rsi
mov rsi, rdx
add rbx, rax
imul rsi, r12
imul r12, r9
mov r10d, r15d
add rbx, rdi
mov rdi, rdx
mov r15, rsi
imul rdi, r10
imul r10, r9
shl r15, 0x20
shr rsi, 0x20
add rdi, r15
add r12, rsi
xor esi, esi
cmp rdi, r15
mov r15, r10
setb sil
shl r15, 0x20
add rdi, r15
cmp rdi, r15
mov r15d, 0
setb r15b
add rbx, rdi
cmp rbx, rdi
mov qword [rsp + r14 + 0x120], rbx
mov ebx, 0
setb bl
shr r10, 0x20
add rsi, r10
add r12, rsi
add r15, rbx
mov rax, qword [rsp + r14 + 0x128]
add r12, r15
add r14, 0x10
cmp rbp, r13
jb 0x14040b116
mov r10, qword [rsp + 0x20]
lea ebx, [rbp + rbp + 1]
shl rbp, 4
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x48]
mov qword [rsp + rbp + 0x118], r12
lea ebp, [rbx - 1]
cmp ebp, r11d
jae 0x14040b2db
mov rbp, rax
mov r14, rdx
shr rbp, 0x20
mov r15d, eax
mov rax, r10
imul r14, rbp
imul rdx, r15
shr rax, 0x20
mov r13, r14
imul r15, rax
imul rbp, rax
shl r13, 0x20
mov r12, r15
shl r12, 0x20
add rdx, r13
movsxd rbx, ebx
shr r14, 0x20
shr r15, 0x20
lea r9, [rdx + r12]
mov rax, qword [rsp + rbx*8 + 0x110]
add rax, r9
cmp rax, r9
mov qword [rsp + rbx*8 + 0x110], rax
mov eax, 0
setb al
cmp rdx, r13
mov edx, 0
setb dl
add rax, rbp
xor ebp, ebp
cmp r9, r12
setb bpl
add r14, rdx
add rax, r14
add r15, rbp
add rax, r15
mov qword [rsp + rbx*8 + 0x118], rax
mov rax, qword [rsp + 0x118]
add rax, qword [rsp + r8*8 + 0x1a0]
mov qword [rsp + 0x118], rax
cmp rax, qword [rsp + r8*8 + 0x1a0]
jae 0x14040b344
mov qword [rsp + r8*8 + 0x128], 0
mov eax, 2
cmp qword [rsp + 0x120], 0xffffffffffffffff
jne 0x14040b33c
xor eax, eax
inc rax
mov qword [rsp + rax*8 + 0x118], 0
cmp qword [rsp + rax*8 + 0x120], 0xffffffffffffffff
je 0x14040b31b
movsxd rax, eax
add rax, 2
inc qword [rsp + rax*8 + 0x110]
inc r8
cmp r11, rsi
jb 0x14040b0c3
mov rbx, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov r9, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
mov r8, qword [rsp + 0xe8]
cmp qword [rsp + r8*8 + 0x110], 0
lea rcx, [r8*8]
mov qword [rsp + 0x48], rcx
jne 0x14040fdb3
mov r11, rcx
mov rcx, r8
add r11, 0xfffffffffffffff8
dec rcx
lea r8, [rsp + r11 + 0x110]
mov r10, qword [r8]
test r10, r10
je 0x14040b3b3
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0x48], r11
xor eax, eax
test r10, r10
jle 0x14040b3eb
add r10, r10
inc eax
test r10, r10
jg 0x14040b3de
mov qword [r8], r10
mov r8, qword [rsp + 0xe8]
shl r8, 6
movsxd rax, eax
sub r8, rax
test eax, eax
je 0x14040b588
mov qword [rsp + 0x418], r10
mov r10, qword [rsp + 0xe8]
lea rdx, [r10 - 1]
mov dword [rsp + 0x30], edx
test edx, edx
je 0x14040b6c8
mov r15d, edx
mov r11d, 1
mov dword [rsp + 0x40], 0
mov qword [rsp + 0x38], 0
shr r15d, 1
je 0x14040b533
movsxd r11, edx
sub r10, r11
mov qword [rsp + 0x28], r10
mov r10d, eax
mov qword [rsp + 0xd8], rbp
lea r11, [rsp + r11*8 + 0x110]
mov qword [rsp + 0x100], rdi
neg r10d
mov dword [rsp + 0xf8], esi
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x108], r13
mov rdi, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x38]
mov ebp, dword [rsp + 0x40]
nop dword [rax + rax]
mov r13, qword [rsi + r11]
lea r14, [rdi + 1]
movsxd rdx, r14d
mov ecx, r10d
mov r14, r13
add rdi, 2
shr r14, cl
mov ecx, eax
shl r13, cl
mov ecx, r10d
or qword [rsp + rdx*8 + 0x408], r14
inc ebp
mov qword [rsp + rdx*8 + 0x410], r13
movsxd rdx, edi
mov r14, qword [rsi + r11 - 8]
mov r13, r14
shr r13, cl
mov ecx, eax
shl r14, cl
add rsi, 0xfffffffffffffff0
or qword [rsp + rdx*8 + 0x408], r13
mov qword [rsp + rdx*8 + 0x410], r14
cmp ebp, r15d
jb 0x14040b4a0
mov dword [rsp + 0x40], ebp
mov r10d, ebp
mov rdx, qword [rsp + 0x20]
mov r14, qword [rsp + 0x58]
mov rbp, qword [rsp + 0xd8]
lea r11d, [r10 + r10 + 1]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
lea r10d, [r11 - 1]
cmp r10d, dword [rsp + 0x30]
jae 0x14040b6c8
mov r15, qword [rsp + 0xe8]
mov ecx, eax
movsxd r11, r11d
sub r15, rdx
add r15, r11
neg ecx
movsxd r10, r15d
movsxd r15, edx
sub r15, r11
mov r15, qword [rsp + r15*8 + 0x118]
mov r11, r15
shr r11, cl
mov ecx, eax
shl r15, cl
or qword [rsp + r10*8 + 0x408], r11
mov qword [rsp + r10*8 + 0x410], r15
jmp 0x14040b6c8
movsxd rax, dword [rsp + 0xe8]
test rax, rax
je 0x14040b6c8
cmp rax, 2
jl 0x14040fda5
mov r11, qword [rsp + 0xe8]
mov ecx, 1
sub r11, rax
lea r11, [rsp + r11*8 + 0x410]
lea r15, [r11 + 8]
and r15, 0xf
cmovne r15, rcx
lea r10, [r15 + 2]
cmp rax, r10
jl 0x14040fda5
mov ecx, r15d
mov r10d, eax
neg ecx
add ecx, r10d
and ecx, 1
sub r10d, ecx
mov rcx, r11
movsxd r10, r10d
mov qword [rsp + 0x20], r10
xor r10d, r10d
test r15, r15
jbe 0x14040b63b
mov qword [rsp + 0x100], rdi
lea rdx, [rsp + rax*8 + 0x110]
mov dword [rsp + 0xf8], esi
mov rdi, rdx
mov rdx, r10
mov rsi, qword [rdi + rdx*8]
inc r10
mov qword [rcx + 8], rsi
add rcx, 8
dec rdx
cmp r10, r15
jb 0x14040b615
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
mov r10, r15
lea rcx, [r11 + r15*8]
neg r10
mov r11, qword [rsp + 0x20]
add r10, rax
movq xmm1, qword [rsp + r10*8 + 0x110]
add r15, 2
movhpd xmm1, qword [rsp + r10*8 + 0x108]
add r10, 0xfffffffffffffffe
movdqu xmmword [rcx + 8], xmm1
add rcx, 0x10
cmp r15, r11
jb 0x14040b64d
mov qword [rsp + 0x20], r11
mov r10, qword [rsp + 0x20]
mov rcx, r10
neg rcx
cmp r10, rax
jae 0x14040b6c8
mov r15, r10
mov r10, qword [rsp + 0xe8]
sub r10, rax
mov rdx, r15
lea r11, [rsp + r10*8 + 0x410]
lea r11, [r11 + r15*8]
lea r10, [rsp + rax*8 + 0x110]
mov r15, qword [r10 + rcx*8]
inc rdx
mov qword [r11 + 8], r15
add r11, 8
dec rcx
cmp rdx, rax
jb 0x14040b6b1
mov rcx, qword [rsp + 0x48]
cmp qword [rsp + rcx + 0x410], 0
jne 0x14040b6f6
mov rcx, qword [rsp + 0xe8]
dec rcx
cmp qword [rsp + rcx*8 + 0x410], 0
je 0x14040b6e0
mov qword [rsp + 0xe8], rcx
test r9, r9
je 0x14040f0d0
mov ecx, 0x80
movdqu xmmword [rsp + rcx + 0x300], xmm0
movdqu xmmword [rsp + rcx + 0x2f0], xmm0
movdqu xmmword [rsp + rcx + 0x2e0], xmm0
movdqu xmmword [rsp + rcx + 0x2d0], xmm0
sub rcx, 0x40
jne 0x14040b704
cmp qword [rsp + 0xe8], 2
jb 0x14040b84b
mov rcx, qword [rsp + 0x428]
shr rcx, 0x3f
mov r10, qword [rsp + 0x420]
add r10, rcx
mov qword [rsp + 0xe8], 2
mov qword [rsp + 0x420], r10
cmp r10, rcx
jae 0x14040b817
mov ecx, 1
mov qword [rsp + 0x410], 0
mov qword [rsp + 0xe8], rcx
cmp qword [rsp + 0x418], 0xffffffffffffffff
je 0x14040b7a9
lea rcx, [rsp + 0x418]
mov qword [rcx - 0x380], rcx
mov rcx, qword [rcx]
jmp 0x14040b7db
mov r10, rcx
dec r10
lea r11, [rsp + r10*8 + 0x410]
mov rcx, qword [r11]
cmp rcx, 0xffffffffffffffff
je 0x14040b7ac
mov qword [rsp + 0xe8], r10
mov qword [rsp + 0x98], r11
cmp qword [rsp + 0xe8], 0
je 0x14040b7eb
mov r10, qword [rsp + 0x98]
inc rcx
mov qword [r10], rcx
jmp 0x14040b863
movabs rcx, 0x8000000000000000
lea r10, [rsp + 0x418]
mov qword [r10 - 0x330], 1
inc r8
mov qword [r10], rcx
mov qword [r10 - 0x380], r10
jmp 0x14040b863
test r10, r10
jne 0x14040fb9d
mov rcx, qword [rsp + 0xe8]
dec rcx
lea r10, [rsp + rcx*8 + 0x410]
cmp qword [r10], 0
je 0x14040b828
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0x98], r10
jmp 0x14040b863
mov rcx, qword [rsp + 0xe8]
lea r10, [rsp + rcx*8 + 0x410]
mov qword [rsp + 0x98], r10
mov ecx, 0x80
movdqu xmmword [rsp + rcx + 0x200], xmm0
movdqu xmmword [rsp + rcx + 0x1f0], xmm0
movdqu xmmword [rsp + rcx + 0x1e0], xmm0
movdqu xmmword [rsp + rcx + 0x1d0], xmm0
sub rcx, 0x40
jne 0x14040b868
mov ecx, 0x80
movdqu xmmword [rsp + rcx + 0x280], xmm0
movdqu xmmword [rsp + rcx + 0x270], xmm0
movdqu xmmword [rsp + rcx + 0x260], xmm0
movdqu xmmword [rsp + rcx + 0x250], xmm0
sub rcx, 0x40
jne 0x14040b897
mov qword [rsp + 0x90], 2
xor edx, edx
cmp r9, 0xfffffffffffffdea
jge 0x14040c1ca
xor ecx, ecx
mov r11d, 0x1000
xor r14d, r14d
mov r10d, 6
cmp r9, 0xfffffffffffff000
jle 0x14040b93f
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x108], r13
mov qword [rsp + 0x100], rdi
mov dword [rsp + 0xf8], esi
mov rcx, qword [rsp + 0xb8]
jmp 0x14040c14d
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x108], r13
mov qword [rsp + 0x100], rdi
mov dword [rsp + 0xf8], esi
mov rcx, qword [rsp + 0xb8]
movsxd r11, r11d
add r9, r11
test rdx, rdx
je 0x14040c10e
lea rax, [0x140000000]
mov r8, rax
mov rbp, r8
mov rsi, qword [rsp + rdx*8 + 0x290]
movsx rdi, word [rax + r10 + 0x5a091e]
mov qword [rsp + 0x78], rdi
mov rdi, qword [rbp + r14 + 0x5a0630]
mov r15, rdi
mov qword [rsp + 0xb8], rcx
mov rbp, rsi
mov ecx, esi
shr r15, 0x20
mov r12, rcx
imul r12, r15
mov r13d, edi
mov rsi, rcx
imul rsi, r13
mov rbx, r12
shl rbx, 0x20
add rsi, rbx
cmp rsi, rbx
mov ebx, 0
mov qword [rsp + 0x80], r13
setb bl
shr rbp, 0x20
mov qword [rsp + 0x48], rbx
mov rbx, rbp
imul rbx, r15
imul r13, rbp
mov qword [rsp + 0x40], r10
lea r10, [rdx + 1]
mov qword [rsp + 0x220], rdi
movsxd rdi, r10d
shr r12, 0x20
add rbx, r12
mov r12, r13
shl r12, 0x20
mov rax, qword [r8 + r14 + 0x5a0638]
lea r8, [rsp + rdi*8 + 0x190]
add rsi, r12
mov qword [r8 + 8], rsi
cmp rsi, r12
mov qword [rsp + 0xc8], r15
lea rsi, [rsp + rdi*8 + 0x110]
mov r15d, 0
mov qword [rsi], r15
mov qword [rsi - 8], r15
mov r15d, 0
setb r15b
add rbx, qword [rsp + 0x48]
shr r13, 0x20
add rbx, r13
mov qword [rsp + 0x218], rax
add rbx, r15
mov r12d, eax
mov r15, rcx
shr rax, 0x20
imul r15, rax
imul rcx, r12
mov qword [rsp + 0x88], r12
mov r13, r15
imul r12, rbp
imul rbp, rax
shr r15, 0x20
shl r13, 0x20
add rbp, r15
mov r15, r12
add rcx, r13
shl r15, 0x20
cmp rcx, r13
mov r13d, 0
setb r13b
add rcx, r15
cmp rcx, r15
mov r15d, 0
setb r15b
add rbx, rcx
cmp rbx, rcx
mov ecx, 0
setb cl
shr r12, 0x20
add r13, r12
add rbp, r13
add r15, rcx
add rbp, r15
mov qword [r8], rbx
add r10d, 0xfffffffe
mov qword [r8 - 8], rbp
mov rcx, qword [rsp + 0xb8]
mov r10, qword [rsp + 0x40]
js 0x14040bc00
lea rbp, [rdi - 1]
movsxd rbx, ebp
neg rbx
dec rbx
neg rbx
dec rbx
cmp rbx, 2
jl 0x14040fbc1
sub rdi, rbp
lea r15, [rsp + rdi*8 + 0x188]
mov edi, 1
and r15, 0xf
cmovne r15, rdi
lea r12, [r15 + 2]
cmp rbx, r12
jl 0x14040fbc1
mov edi, r15d
mov r13d, ebx
neg edi
mov r12, rsi
add edi, r13d
and edi, 1
sub r13d, edi
lea rdi, [rbp*8]
sub r12, rdi
neg rdi
add rdi, r8
movsxd r13, r13d
mov qword [rsp + 0x58], 0
test r15, r15
jbe 0x14040bbc6
mov qword [rsp + 0x70], rdx
mov dword [rsp + 0x50], r11d
xor r11d, r11d
mov rdx, qword [rsp + 0x58]
mov qword [r12 + rdx*8 - 8], r11
mov qword [rdi + rdx*8 - 8], r11
inc rdx
cmp rdx, r15
jb 0x14040bbaa
mov r11d, dword [rsp + 0x50]
mov rdx, qword [rsp + 0x70]
movdqu xmmword [r12 + r15*8 - 8], xmm0
movdqu xmmword [rdi + r15*8 - 8], xmm0
add r15, 2
cmp r15, r13
jb 0x14040bbc6
cmp r13, rbx
jae 0x14040bc00
shl rbp, 3
sub rsi, rbp
sub r8, rbp
xor ebp, ebp
mov qword [rsi + r13*8 - 8], rbp
mov qword [r8 + r13*8 - 8], rbp
inc r13
cmp r13, rbx
jb 0x14040bbee
xor esi, esi
lea rbx, [rdx - 1]
mov r13d, ebx
test r13d, r13d
je 0x14040be46
movsxd r12, ebx
mov qword [rsp + 0xd0], r12
mov qword [rsp + 0x40], r10
mov qword [rsp + 0xb8], rcx
mov dword [rsp + 0x28], r13d
lea rbx, [rsp + r12*8 + 0x190]
mov qword [rsp + 0x20], rbx
lea rbp, [rsp + r12*8 + 0x110]
mov r8, qword [rbx + 8]
lea r15, [rsp + r12*8 + 0x290]
mov rdi, qword [rbx + 0x10]
mov rbx, qword [rbp]
mov qword [rsp + 0xc0], r15
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x60], r9
mov dword [rsp + 0x50], r11d
mov qword [rsp + 0x70], rdx
mov r12, qword [rsp + 0x20]
mov r10, rsi
mov r11, qword [rsp + 0xc0]
inc rsi
mov rcx, qword [rsp + 0xc8]
mov rax, rcx
mov r15, qword [rsp + 0x80]
mov r13, r15
mov r9, qword [r11 + r10*8]
mov r11, r9
mov r9d, r9d
imul rax, r9
imul r13, r9
shr r11, 0x20
mov rdx, rax
imul r15, r11
imul rcx, r11
shl rdx, 0x20
mov r14, r15
add r13, rdx
shl r14, 0x20
cmp r13, rdx
mov edx, 0
setb dl
add r13, r14
cmp r13, r14
mov r14d, 0
setb r14b
add rdi, r13
cmp rdi, r13
mov qword [r12 + r10*8 + 0x10], rdi
mov edi, 0
setb dil
xor r13d, r13d
shr rax, 0x20
shr r15, 0x20
add rcx, rax
add rdx, r15
add rcx, rdx
add r14, rdi
add rcx, r14
add r8, rcx
cmp r8, rcx
mov rdx, qword [rsp + 0xe0]
mov r14, rdx
setb r13b
xor ecx, ecx
imul r14, r9
add rbx, r13
mov rax, r14
mov qword [rbp + r10*8], rbx
xor r13d, r13d
mov rbx, qword [rsp + 0x88]
imul r9, rbx
imul rbx, r11
imul r11, rdx
shl rax, 0x20
mov r15, rbx
shl r15, 0x20
add r9, rax
cmp r9, rax
setb r13b
add r9, r15
cmp r9, r15
setb cl
shr r14, 0x20
lea rdi, [r9 + r8]
xor r8d, r8d
cmp rdi, r9
setb r8b
add r11, r14
shr rbx, 0x20
add r13, rbx
add r11, r13
add rcx, r8
add r11, rcx
xor ebx, ebx
mov r8, qword [r12 + r10*8]
add r8, r11
cmp r8, r11
setb bl
add rbx, qword [rbp + r10*8 - 8]
dec r10
cmp rsi, qword [rsp + 0xd0]
jb 0x14040bc84
shl rsi, 3
mov rax, qword [rsp + 0x20]
sub rbp, rsi
sub rax, rsi
mov r13d, dword [rsp + 0x28]
mov rcx, qword [rsp + 0xb8]
mov r10, qword [rsp + 0x40]
mov qword [rax + 8], r8
mov qword [rax + 0x10], rdi
mov eax, r13d
mov r14, qword [rsp + 0x30]
mov r9, qword [rsp + 0x60]
mov r11d, dword [rsp + 0x50]
mov rdx, qword [rsp + 0x70]
mov qword [rbp], rbx
mov ebp, 1
xor ebx, ebx
shr eax, 3
je 0x14040be1f
inc ebx
cmp ebx, eax
jb 0x14040be12
lea ebp, [rbx*8 + 1]
cmp ebp, r13d
ja 0x14040be46
dec ebp
lea rbx, [0x140000000]
sub r13d, ebp
dec r13d
movzx eax, byte [rbx + r13 + 0x5a01c0]
lea rax, [rbx + rax + 0x40be46]
jmp rax
add rdx, 2
xor ebp, ebp
add rcx, qword [rsp + 0x78]
mov rax, qword [rsp + rdx*8 + 0x190]
lea rsi, [rdx - 1]
mov r8d, esi
lea r13, [rsp + rdx*8 + 0x290]
mov qword [r13], rax
test r8d, r8d
je 0x14040bf47
mov ebx, r8d
xor r12d, r12d
mov eax, 1
xor edi, edi
shr ebx, 1
je 0x14040bf14
mov qword [rsp + 0x38], rbx
movsxd rbx, esi
mov dword [rsp + 0x50], r11d
mov qword [rsp + 0x70], rdx
mov rdx, qword [rsp + 0x38]
lea r15, [rsp + rbx*8 + 0x190]
mov r11, r15
lea rax, [rsp + rbx*8 + 0x290]
lea rbx, [rsp + rbx*8 + 0x110]
nop dword [rax]
add rbp, qword [rdi + rbx]
inc r12
mov r15, qword [rdi + r11]
add r15, rbp
cmp r15, rbp
mov ebp, 0
mov qword [rdi + rax], r15
setb bpl
add rbp, qword [rdi + rbx - 8]
mov r15, qword [rdi + r11 - 8]
add r15, rbp
cmp r15, rbp
mov ebp, 0
mov qword [rdi + rax - 8], r15
setb bpl
add rdi, 0xfffffffffffffff0
cmp r12, rdx
jb 0x14040bec0
mov r11d, dword [rsp + 0x50]
lea eax, [r12 + r12 + 1]
mov rdx, qword [rsp + 0x70]
lea ebx, [rax - 1]
cmp ebx, r8d
jae 0x14040bf43
movsxd rbx, esi
movsxd rax, eax
sub rbx, rax
add rbp, qword [rsp + rbx*8 + 0x118]
add rbp, qword [rsp + rbx*8 + 0x198]
mov qword [rsp + rbx*8 + 0x298], rbp
mov rax, qword [r13]
jmp 0x14040bf47
mov rax, qword [r13]
test rax, rax
jne 0x14040bf6c
xor ebx, ebx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rbx
cmp qword [rax + r13], 0
je 0x14040bf50
neg rbx
add rdx, rbx
lea r13, [rsp + rdx*8 + 0x290]
mov rbp, qword [rsp + 0x298]
test rbp, rbp
jle 0x14040fbb1
add rbp, rbp
dec rcx
mov qword [rsp + 0x298], rbp
cmp rdx, 2
jb 0x14040c049
mov esi, 1
lea rax, [rdx - 1]
xor ebx, ebx
shr rax, 1
je 0x14040c010
nop dword [rax]
nop dword [rax]
movsxd r12, ebx
inc ebx
shl r12, 4
mov r8, qword [rsp + r12 + 0x2a0]
mov rsi, r8
shr rsi, 0x3f
add r8, r8
or rbp, rsi
mov qword [rsp + r12 + 0x298], rbp
mov rbp, qword [rsp + r12 + 0x2a8]
mov rdi, rbp
shr rdi, 0x3f
add rbp, rbp
or r8, rdi
mov qword [rsp + r12 + 0x2a0], r8
cmp rbx, rax
jb 0x14040bfb0
lea esi, [rbx + rbx]
movsxd rbx, ebx
shl rbx, 4
movsxd rsi, esi
inc rsi
mov qword [rsp + rbx + 0x298], rbp
dec rsi
lea rbx, [rdx - 1]
mov eax, esi
cmp rax, rbx
jae 0x14040c040
mov rbx, qword [rsp + rsi*8 + 0x2a0]
mov rax, rbx
shr rax, 0x3f
add rbx, rbx
or qword [rsp + rsi*8 + 0x298], rax
mov qword [rsp + rsi*8 + 0x2a0], rbx
cmp qword [r13], 0
je 0x14040c054
jmp 0x14040c061
cmp qword [r13], 0
jne 0x14040c14d
dec rdx
cmp rdx, 2
jb 0x14040c14d
mov rax, qword [rsp + 0x2a8]
mov edx, 2
shr rax, 0x3f
mov rbx, qword [rsp + 0x2a0]
add rbx, rax
mov qword [rsp + 0x2a0], rbx
cmp rbx, rax
jae 0x14040c0ea
mov qword [rsp + 0x290], 0
mov edx, 1
cmp qword [rsp + 0x298], 0xffffffffffffffff
jne 0x14040c0e0
xor edx, edx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rdx
cmp qword [rsp + rax + 0x298], 0xffffffffffffffff
je 0x14040c0aa
neg rdx
inc rdx
jne 0x14040c0e0
movabs rax, 0x8000000000000000
mov edx, 1
mov qword [rsp + 0x298], rax
inc rcx
jmp 0x14040c14d
inc qword [rsp + rdx*8 + 0x290]
jmp 0x14040c14d
test rbx, rbx
jne 0x14040c14d
xor edx, edx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rdx
cmp qword [rsp + rax + 0x2a0], 0
je 0x14040c0f3
neg rdx
add rdx, 2
jmp 0x14040c14d
lea rax, [0x140000000]
lea rcx, [0x140000000]
mov rbp, rax
mov edx, 2
mov rbx, qword [rax + r14 + 0x5a0638]
mov rsi, qword [rbp + r14 + 0x5a0630]
movsx rcx, word [rcx + r10 + 0x5a091e]
mov qword [rsp + 0x298], rbx
mov qword [rsp + 0x2a0], rsi
mov rbx, qword [rsp + 0x68]
inc rbx
add r10, 0xfffffffffffffffe
sar r11d, 1
add r14, 0xfffffffffffffff0
cmp rbx, 4
jae 0x14040c186
mov eax, r11d
neg eax
movsxd rax, eax
cmp r9, rax
jg 0x14040c152
nop word [rax + rax]
mov qword [rsp + 0x68], rbx
jmp 0x14040b983
mov qword [rsp + 0xb8], rcx
mov rbx, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
jmp 0x14040ca62
cmp r9, 0x216
jle 0x14040ca62
xor eax, eax
mov r10d, 0x1000
xor r11d, r11d
mov r15d, 6
xor ecx, ecx
cmp r9, 0x1000
jge 0x14040c204
mov dword [rsp + 0xf8], esi
mov rsi, qword [rsp + 0xb8]
jmp 0x14040c25b
mov r9, qword [rsp + 0x50]
mov dword [rsp + 0xf8], esi
lea r9, [r14 + r9 - 0x1000]
lea r14, [0x140000000]
lea rsi, [0x140000000]
mov edx, 2
mov r14, qword [r14 + rcx + 0x5a07b8]
mov qword [rsp + 0x298], r14
lea r14, [0x140000000]
movsx rsi, word [rsi + r15 + 0x5a093a]
mov r14, qword [r14 + rcx + 0x5a07b0]
mov qword [rsp + 0x2a0], r14
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0x60], r9
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x108], r13
mov qword [rsp + 0x100], rdi
inc rax
add r15, 0xfffffffffffffffe
sar r10, 1
add r11, 0xfffffffffffffffe
add rcx, 0xfffffffffffffff0
cmp rax, 4
jae 0x14040ca26
mov qword [rsp + 0x50], rax
cmp r10, qword [rsp + 0x60]
jg 0x14040c298
sub qword [rsp + 0x60], r10
test rdx, rdx
je 0x14040f70b
lea rax, [0x140000000]
mov r12, rax
mov r8, r12
mov rbx, qword [rsp + rdx*8 + 0x290]
mov esi, ebx
mov qword [rsp + 0x40], r10
mov r10, rsi
mov rbp, qword [r8 + rcx + 0x5a07b0]
mov r14, rbp
shr r14, 0x20
mov r8, rbx
imul r10, r14
mov r13d, ebp
mov rbx, rsi
imul rbx, r13
mov rdi, r10
shl rdi, 0x20
add rbx, rdi
cmp rbx, rdi
mov edi, 0
mov qword [rsp + 0x58], r13
setb dil
shr r8, 0x20
mov qword [rsp + 0x48], rdi
mov rdi, r8
imul rdi, r14
imul r13, r8
mov qword [rsp + 0x220], rbp
lea rbp, [rdx + 1]
movsx r9, word [rax + r11 + 0x5a0940]
mov qword [rsp + 0x78], r9
movsxd r9, ebp
shr r10, 0x20
add rdi, r10
mov r10, r13
shl r10, 0x20
mov rax, qword [r12 + rcx + 0x5a07b8]
lea r12, [rsp + r9*8 + 0x190]
add rbx, r10
mov qword [r12 + 8], rbx
cmp rbx, r10
mov qword [rsp + 0x80], r14
lea rbx, [rsp + r9*8 + 0x110]
mov r14d, 0
mov qword [rbx], r14
mov qword [rbx - 8], r14
mov r14d, 0
setb r14b
add rdi, qword [rsp + 0x48]
shr r13, 0x20
add rdi, r13
mov qword [rsp + 0x218], rax
add rdi, r14
mov r10d, eax
mov r14, rsi
shr rax, 0x20
imul r14, rax
imul rsi, r10
mov qword [rsp + 0x68], r10
mov r13, r14
imul r10, r8
imul r8, rax
shr r14, 0x20
shl r13, 0x20
add r8, r14
mov r14, r10
add rsi, r13
shl r14, 0x20
cmp rsi, r13
mov r13d, 0
setb r13b
add rsi, r14
cmp rsi, r14
mov r14d, 0
setb r14b
add rdi, rsi
cmp rdi, rsi
mov esi, 0
setb sil
shr r10, 0x20
add r13, r10
add r8, r13
add r14, rsi
add r8, r14
mov qword [r12], rdi
add ebp, 0xfffffffe
mov qword [r12 - 8], r8
mov r10, qword [rsp + 0x40]
js 0x14040c513
lea rsi, [r9 - 1]
movsxd rbp, esi
neg rbp
dec rbp
neg rbp
dec rbp
cmp rbp, 2
jl 0x14040fd9d
sub r9, rsi
mov edi, 1
lea r14, [rsp + r9*8 + 0x188]
and r14, 0xf
cmovne r14, rdi
lea r8, [r14 + 2]
cmp rbp, r8
jl 0x14040fd9d
mov edi, r14d
mov r13d, ebp
neg edi
lea r9, [rsi*8]
add edi, r13d
mov r8, rbx
and edi, 1
sub r8, r9
neg r9
sub r13d, edi
add r9, r12
xor edi, edi
movsxd r13, r13d
test r14, r14
jbe 0x14040c4d9
mov qword [rsp + 0x70], rdx
xor edx, edx
mov qword [r8 + rdi*8 - 8], rdx
mov qword [r9 + rdi*8 - 8], rdx
inc rdi
cmp rdi, r14
jb 0x14040c4c2
mov rdx, qword [rsp + 0x70]
movdqu xmmword [r8 + r14*8 - 8], xmm0
movdqu xmmword [r9 + r14*8 - 8], xmm0
add r14, 2
cmp r14, r13
jb 0x14040c4d9
cmp r13, rbp
jae 0x14040c513
shl rsi, 3
sub rbx, rsi
sub r12, rsi
xor esi, esi
mov qword [rbx + r13*8 - 8], rsi
mov qword [r12 + r13*8 - 8], rsi
inc r13
cmp r13, rbp
jb 0x14040c501
xor r8d, r8d
lea rbx, [rdx - 1]
mov r12d, ebx
test r12d, r12d
je 0x14040c735
movsxd r14, ebx
mov qword [rsp + 0x28], r11
mov qword [rsp + 0xc0], r14
mov dword [rsp + 0x20], r12d
mov qword [rsp + 0xc8], rax
lea rsi, [rsp + r14*8 + 0x190]
mov r9, qword [rsi + 8]
lea rbp, [rsp + r14*8 + 0x110]
mov rdi, qword [rsi + 0x10]
lea r13, [rsp + r14*8 + 0x290]
mov rbx, qword [rbp]
mov qword [rsp + 0x88], r13
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x70], rdx
mov r11, r8
mov r12, qword [rsp + 0x88]
inc r8
mov rcx, qword [rsp + 0x80]
mov rax, rcx
mov r15, qword [rsp + 0x58]
mov r13, r15
mov r10, qword [r12 + r11*8]
mov r12, r10
mov r10d, r10d
imul rax, r10
imul r13, r10
shr r12, 0x20
mov rdx, rax
imul r15, r12
imul rcx, r12
shl rdx, 0x20
mov r14, r15
add r13, rdx
shl r14, 0x20
cmp r13, rdx
mov edx, 0
setb dl
add r13, r14
cmp r13, r14
mov r14d, 0
setb r14b
add rdi, r13
cmp rdi, r13
mov qword [rsi + r11*8 + 0x10], rdi
mov edi, 0
setb dil
xor r13d, r13d
shr rax, 0x20
shr r15, 0x20
add rcx, rax
add rdx, r15
add rcx, rdx
add r14, rdi
add rcx, r14
add r9, rcx
cmp r9, rcx
mov rdx, qword [rsp + 0xc8]
mov r14, rdx
setb r13b
xor ecx, ecx
imul r14, r10
add rbx, r13
mov rax, r14
mov qword [rbp + r11*8], rbx
xor r13d, r13d
mov rbx, qword [rsp + 0x68]
imul r10, rbx
imul rbx, r12
imul r12, rdx
shl rax, 0x20
mov r15, rbx
shl r15, 0x20
add r10, rax
cmp r10, rax
setb r13b
add r10, r15
cmp r10, r15
setb cl
shr r14, 0x20
lea rdi, [r10 + r9]
xor r9d, r9d
cmp rdi, r10
setb r9b
add r12, r14
shr rbx, 0x20
add r13, rbx
add r12, r13
add rcx, r9
add r12, rcx
xor ebx, ebx
mov r9, qword [rsi + r11*8]
add r9, r12
cmp r9, r12
setb bl
add rbx, qword [rbp + r11*8 - 8]
dec r11
cmp r8, qword [rsp + 0xc0]
jb 0x14040c586
shl r8, 3
sub rsi, r8
sub rbp, r8
mov r12d, dword [rsp + 0x20]
mov eax, r12d
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x28]
mov r15, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x70]
mov qword [rsi + 8], r9
mov qword [rsi + 0x10], rdi
mov qword [rbp], rbx
mov ebp, 1
xor ebx, ebx
shr eax, 3
je 0x14040c70e
inc ebx
cmp ebx, eax
jb 0x14040c701
lea ebp, [rbx*8 + 1]
cmp ebp, r12d
ja 0x14040c735
dec ebp
lea rbx, [0x140000000]
sub r12d, ebp
dec r12d
movzx eax, byte [rbx + r12 + 0x5a01c8]
lea rax, [rbx + rax + 0x40c735]
jmp rax
add rdx, 2
xor ebx, ebx
mov r8, qword [rsp + 0xb8]
add r8, qword [rsp + 0x78]
mov qword [rsp + 0xb8], r8
mov rax, qword [rsp + rdx*8 + 0x190]
lea rbp, [rdx - 1]
mov esi, ebp
lea r8, [rsp + rdx*8 + 0x290]
mov qword [r8], rax
test esi, esi
je 0x14040c82e
mov r12d, esi
xor eax, eax
mov r9d, 1
xor edi, edi
shr r12d, 1
je 0x14040c7fd
movsxd r14, ebp
mov qword [rsp + 0x70], rdx
lea r9, [rsp + r14*8 + 0x290]
lea r13, [rsp + r14*8 + 0x190]
lea r14, [rsp + r14*8 + 0x110]
nop dword [rax + rax]
nop dword [rax + rax]
add rbx, qword [rdi + r14]
inc rax
mov rdx, qword [rdi + r13]
add rdx, rbx
cmp rdx, rbx
mov ebx, 0
mov qword [rdi + r9], rdx
setb bl
add rbx, qword [rdi + r14 - 8]
mov rdx, qword [rdi + r13 - 8]
add rdx, rbx
cmp rdx, rbx
mov ebx, 0
mov qword [rdi + r9 - 8], rdx
setb bl
add rdi, 0xfffffffffffffff0
cmp rax, r12
jb 0x14040c7b0
mov rdx, qword [rsp + 0x70]
lea r9d, [rax + rax + 1]
lea eax, [r9 - 1]
cmp eax, esi
jae 0x14040c82b
movsxd rax, ebp
movsxd r9, r9d
sub rax, r9
add rbx, qword [rsp + rax*8 + 0x118]
add rbx, qword [rsp + rax*8 + 0x198]
mov qword [rsp + rax*8 + 0x298], rbx
mov rax, qword [r8]
jmp 0x14040c82e
mov rax, qword [r8]
test rax, rax
jne 0x14040c853
xor ebx, ebx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rbx
cmp qword [rax + r8], 0
je 0x14040c837
neg rbx
add rdx, rbx
lea r8, [rsp + rdx*8 + 0x290]
mov rax, qword [rsp + 0x298]
test rax, rax
jle 0x14040fd8e
dec qword [rsp + 0xb8]
add rax, rax
mov qword [rsp + 0x298], rax
cmp rdx, 2
jb 0x14040c939
mov esi, 1
lea rbx, [rdx - 1]
xor ebp, ebp
shr rbx, 1
je 0x14040c901
nop dword [rax + rax]
nop dword [rax]
movsxd r12, ebp
inc ebp
shl r12, 4
mov r9, qword [rsp + r12 + 0x2a0]
mov rsi, r9
shr rsi, 0x3f
add r9, r9
or rax, rsi
mov qword [rsp + r12 + 0x298], rax
mov rax, qword [rsp + r12 + 0x2a8]
mov rdi, rax
shr rdi, 0x3f
add rax, rax
or r9, rdi
mov qword [rsp + r12 + 0x2a0], r9
cmp rbp, rbx
jb 0x14040c8a0
lea esi, [rbp + rbp]
movsxd rbp, ebp
shl rbp, 4
movsxd rsi, esi
inc rsi
mov qword [rsp + rbp + 0x298], rax
dec rsi
lea rbx, [rdx - 1]
mov eax, esi
cmp rax, rbx
jae 0x14040c931
mov rbx, qword [rsp + rsi*8 + 0x2a0]
mov rax, rbx
shr rax, 0x3f
add rbx, rbx
or qword [rsp + rsi*8 + 0x298], rax
mov qword [rsp + rsi*8 + 0x2a0], rbx
cmp qword [r8], 0
je 0x14040c943
jmp 0x14040c950
cmp qword [r8], 0
jne 0x14040ca00
dec rdx
cmp rdx, 2
jb 0x14040ca00
mov rax, qword [rsp + 0x2a8]
mov edx, 2
shr rax, 0x3f
mov rbx, qword [rsp + 0x2a0]
add rbx, rax
mov qword [rsp + 0x2a0], rbx
cmp rbx, rax
jae 0x14040c9de
mov qword [rsp + 0x290], 0
mov edx, 1
cmp qword [rsp + 0x298], 0xffffffffffffffff
jne 0x14040c9b3
xor edx, edx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rdx
cmp qword [rsp + rax + 0x298], 0xffffffffffffffff
je 0x14040c999
neg rdx
inc rdx
je 0x14040c9bd
inc qword [rsp + rdx*8 + 0x290]
jmp 0x14040ca00
movabs rax, 0x8000000000000000
mov edx, 1
inc qword [rsp + 0xb8]
mov qword [rsp + 0x298], rax
jmp 0x14040ca00
test rbx, rbx
jne 0x14040ca00
xor edx, edx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rdx
cmp qword [rsp + rax + 0x2a0], 0
je 0x14040c9e7
neg rdx
add rdx, 2
mov rax, qword [rsp + 0x50]
add r15, 0xfffffffffffffffe
inc rax
add r11, 0xfffffffffffffffe
sar r10, 1
add rcx, 0xfffffffffffffff0
mov qword [rsp + 0x50], rax
cmp rax, 4
jb 0x14040c2b9
mov rbx, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xb0]
mov r9, qword [rsp + 0x60]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
lea rcx, [r9 + 0x1b]
cmp rcx, 0x1a
ja 0x14040cace
lea r11, [0x140000000]
lea rcx, [0x140000000]
mov r15, rcx
mov r10d, 2
movsx r11, word [r11 + r9*2 + 0x5a091e]
shl r9, 4
mov r14, qword [rcx + r9 + 0x5a05f8]
mov r9, qword [r15 + r9 + 0x5a05f0]
mov qword [rsp + 0x318], r14
mov qword [rsp + 0x320], r9
test r9, r9
jne 0x14040fbc9
dec r10
mov r9, qword [rsp + r10*8 + 0x310]
test r9, r9
je 0x14040cab9
jmp 0x14040df38
mov ecx, 0x80
movdqu xmmword [rsp + rcx + 0x180], xmm0
movdqu xmmword [rsp + rcx + 0x170], xmm0
movdqu xmmword [rsp + rcx + 0x160], xmm0
movdqu xmmword [rsp + rcx + 0x150], xmm0
sub rcx, 0x40
jne 0x14040cad3
test r9, r9
jl 0x14040fd01
cmp r9, 0x37
jl 0x14040cb96
mov r11, r9
lea r15, [0x140000000]
shr r11, 3
movsxd r14, r11d
lea r10, [r14 + r14]
movzx ecx, word [r15 + r10 + 0x5a0862]
lea r11, [r14 + r14 + 2]
shr ecx, 5
cmp rcx, r9
mov rcx, r15
cmovle r10, r11
movzx r10d, word [rcx + r10 + 0x5a0860]
mov ecx, r10d
shr r10d, 5
and ecx, 0x1f
sub r9, r10
mov r10, r15
movsxd r9, r9d
movsx r10, word [r10 + rcx*2 + 0x5a0942]
mov qword [rsp + 0x78], r10
mov r10, r15
shl rcx, 4
mov r10, qword [r10 + rcx + 0x5a07c8]
mov qword [rsp + 0x218], r10
mov r10, r15
mov rcx, qword [r10 + rcx + 0x5a07c0]
mov qword [rsp + 0x220], rcx
jmp 0x14040cba5
movsxd r9, r9d
mov qword [rsp + 0x90], 0
cmp r9, 0x37
je 0x14040fcd0
mov rcx, r9
add rcx, 0xffffffffffffffe5
jle 0x14040cc0c
lea r10, [0x140000000]
mov r9d, 0x1b
mov r14, r10
mov qword [rsp + 0x50], 1
movsx r11, word [r10 + rcx*2 + 0x5a0cbe]
mov r15, qword [r14 + rcx*8 + 0x5a0ad8]
mov qword [rsp + 0x58], r11
mov qword [rsp + 0x198], r15
test r15, r15
jne 0x14040cc0c
mov r10, qword [rsp + 0x50]
dec r10
cmp qword [rsp + r10*8 + 0x190], 0
je 0x14040cbf9
mov qword [rsp + 0x50], r10
lea r11, [0x140000000]
lea r14, [0x140000000]
mov r10d, 1
movsx r11, word [r11 + r9*2 + 0x5a0cbe]
mov r9, qword [r14 + r9*8 + 0x5a0ad8]
mov qword [rsp + 0x318], r9
test r9, r9
jne 0x14040fcc3
dec r10
mov r9, qword [rsp + r10*8 + 0x310]
test r9, r9
je 0x14040cc42
test rcx, rcx
jle 0x14040d5dc
mov qword [rsp + 0xa8], rbx
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0xb0], r8
mov r8d, r9d
mov r14, qword [rsp + rbx*8 + 0x190]
lea rcx, [rbx + r10 - 1]
mov dword [rsp + 0x48], ecx
lea rbx, [rbx - 1]
movsxd r15, ecx
mov rcx, r9
mov r9, r14
mov qword [rsp + 0xa0], r12
mov r12, r8
shr r9, 0x20
imul r12, r9
shr rcx, 0x20
mov rax, r12
mov r14d, r14d
mov qword [rsp + 0x40], r8
imul r8, r14
imul r14, rcx
imul r9, rcx
shl rax, 0x20
mov qword [rsp + 0x38], rcx
add r8, rax
shr r12, 0x20
mov rcx, r14
shl rcx, 0x20
add r9, r12
xor r12d, r12d
cmp r8, rax
mov qword [rsp + 0x28], r15
lea r15, [rsp + r15*8 + 0x390]
setb r12b
add r8, rcx
cmp r8, rcx
mov qword [r15 + 8], r8
mov r8d, 0
setb r8b
add r9, r12
shr r14, 0x20
add r9, r14
movsxd rcx, ebx
add r9, r8
mov qword [rsp + 0x30], r15
xor r14d, r14d
mov qword [r15], r9
mov rbx, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x28]
mov r8, qword [rsp + 0xb0]
test rcx, rcx
je 0x14040ceb1
mov qword [rsp + 0xa0], r12
lea rax, [rsp + r15*8 + 0x110]
mov qword [rsp + 0x20], rax
lea rax, [rsp + rcx*8 + 0x190]
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0x80], r11
mov qword [rsp + 0x88], r10
mov qword [rsp + 0x100], rdi
mov dword [rsp + 0xf8], esi
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x108], r13
mov r11, rax
mov r10, qword [rsp + 0x20]
mov rdi, r14
mov rsi, qword [rsp + 0x30]
mov r12, qword [rsp + 0x40]
mov r8, qword [rsp + 0x38]
mov r15, qword [r11 + rdi*8]
mov r13, r15
shr r13, 0x20
mov rax, r12
imul rax, r13
imul r13, r8
mov ebp, r15d
mov rdx, r12
imul rdx, rbp
imul rbp, r8
mov r15, rax
inc r14
shl r15, 0x20
shr rax, 0x20
add rdx, r15
add r13, rax
xor eax, eax
cmp rdx, r15
mov r15, rbp
setb al
shl r15, 0x20
add rdx, r15
cmp rdx, r15
mov r15d, 0
setb r15b
add r9, rdx
cmp r9, rdx
mov edx, 0
mov qword [rsi + rdi*8], r9
setb dl
shr rbp, 0x20
mov r9d, r15d
add rax, rbp
add r13, rax
add r9, rdx
mov qword [r10 + rdi*8], 0
add r9, r13
dec rdi
cmp r14, rcx
jb 0x14040cdbd
mov r15, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
sub r15d, r14d
shl r14, 3
neg r14
mov r12, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xb0]
mov r11, qword [rsp + 0x80]
mov r10, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
mov dword [rsp + 0x48], r15d
mov qword [r14 + rcx], r9
movsxd r15, r15d
mov ecx, dword [rsp + 0x48]
lea r9, [r15 - 1]
dec ecx
mov qword [rsp + r15*8 + 0x110], 0
js 0x14040d036
movsxd rcx, r9d
inc rcx
mov qword [rsp + 0x30], rcx
movsxd rcx, ecx
neg rcx
dec rcx
neg rcx
dec rcx
cmp rcx, 2
jl 0x14040fcb5
sub r9, qword [rsp + 0x30]
lea r14, [rsp + r9*8 + 0x398]
mov r9d, 1
and r14, 0xf
cmovne r14, r9
mov qword [rsp + 0x20], r14
lea r9, [r14 + 2]
cmp rcx, r9
jl 0x14040fcb5
mov r9d, r14d
mov eax, ecx
neg r9d
add r9d, eax
and r9d, 1
sub eax, r9d
mov r9, qword [rsp + 0x30]
movsxd rax, eax
mov qword [rsp + 0x28], rax
lea rax, [rsp + r15*8 + 0x108]
mov qword [rsp + 0x38], 0
shl r9, 3
sub rax, r9
mov qword [rsp + 0x48], rax
lea rax, [rsp + r15*8 + 0x388]
sub rax, r9
mov qword [rsp + 0x40], rax
test r14, r14
jbe 0x14040cfb9
mov r9, r14
mov qword [rsp + 0x100], rdi
xor r14d, r14d
mov dword [rsp + 0xf8], esi
mov rax, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
mov qword [rdi + rax*8 + 8], r14
mov qword [rsi + rax*8 + 8], r14
inc rax
cmp rax, r9
jb 0x14040cf93
mov qword [rsp + 0x20], r9
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
mov dword [rsp + 0xf8], esi
mov rsi, qword [rsp + 0x28]
mov r9, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
mov rax, qword [rsp + 0x20]
movdqu xmmword [r14 + rax*8 + 8], xmm0
movdqu xmmword [r9 + rax*8 + 8], xmm0
add rax, 2
cmp rax, rsi
jb 0x14040cfd4
mov qword [rsp + 0x28], rsi
mov esi, dword [rsp + 0xf8]
cmp rcx, qword [rsp + 0x28]
jbe 0x14040d036
mov rax, qword [rsp + 0x30]
lea r14, [rsp + r15*8 + 0x108]
shl rax, 3
lea r9, [rsp + r15*8 + 0x388]
mov r15, qword [rsp + 0x28]
sub r14, rax
sub r9, rax
xor eax, eax
mov qword [r14 + r15*8 + 8], rax
mov qword [r9 + r15*8 + 8], rax
inc r15
cmp r15, rcx
jb 0x14040d024
xor ecx, ecx
lea r15, [r10 - 1]
movsxd r15, r15d
xor r9d, r9d
test r15, r15
je 0x14040d29d
movsxd r14, dword [rsp + 0x50]
mov qword [rsp + 0xc0], r15
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x108], r13
lea rax, [r15 + r14]
mov qword [rsp + 0x48], rax
lea rax, [rsp + r15*8 + 0x310]
mov qword [rsp + 0x40], rax
lea rax, [rsp + r15*8 + 0x110]
mov qword [rsp + 0x38], rax
lea rax, [rsp + r15*8 + 0x390]
mov qword [rsp + 0x30], rax
lea rax, [r14*8]
mov qword [rsp + 0x28], rax
lea rax, [rsp + r14*8 + 0x190]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0x80], r11
mov qword [rsp + 0x88], r10
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x100], rdi
mov dword [rsp + 0xf8], esi
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
xor ebx, ebx
xor edi, edi
test r14, r14
je 0x14040d23a
mov r12, qword [rsp + 0x28]
lea r8, [rcx*8]
sub r12, r8
neg r8
add r8, r15
mov rbp, qword [rdx + r9*8]
mov rsi, rbp
mov r11, qword [rsp + rax*8 + 0x390]
mov qword [rsp + 0x48], rax
lea r10, [r13 + r12]
shr rsi, 0x20
lea r8, [r8 + r14*8]
mov ebp, ebp
add r12, r15
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x60], rcx
mov rax, qword [rsp + 0x20]
mov r9, qword [rax + rdi*8]
mov rdx, r9
shr rdx, 0x20
mov r13, rbp
imul r13, rdx
imul rdx, rsi
mov ecx, r9d
mov r15, rbp
imul r15, rcx
imul rcx, rsi
mov r9, r13
dec rdi
shl r9, 0x20
shr r13, 0x20
add r15, r9
add rdx, r13
xor r13d, r13d
cmp r15, r9
mov r9, rcx
setb r13b
shl r9, 0x20
add r15, r9
cmp r15, r9
mov r9d, 0
setb r9b
add r11, r15
cmp r11, r15
mov r15d, 0
setb r15b
shr rcx, 0x20
add r13, rcx
add rdx, r13
add r9, r15
add rdx, r9
lea rcx, [rbx*8]
mov r9, r8
inc rbx
sub r9, rcx
mov qword [r9], r11
mov r11, r12
sub r11, rcx
neg rcx
add rcx, r10
mov r11, qword [r11 - 8]
add r11, rdx
cmp r11, rdx
mov edx, 0
setb dl
add qword [rcx - 0x10], rdx
cmp rbx, r14
jb 0x14040d15a
shl rbx, 3
sub r8, rbx
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
mov r9, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov qword [r8], r11
inc rcx
dec rax
dec r9
cmp rcx, qword [rsp + 0xc0]
jb 0x14040d102
mov rbx, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xb0]
mov r11, qword [rsp + 0x80]
mov r10, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
add r10, qword [rsp + 0x50]
add r11, qword [rsp + 0x58]
mov qword [rsp + 0x38], 0
mov r14, qword [rsp + r10*8 + 0x390]
lea r9, [r10 - 1]
mov qword [rsp + 0x30], r9
lea rcx, [rsp + r10*8 + 0x310]
mov qword [rcx], r14
mov dword [rsp + 0x28], r9d
test r9d, r9d
je 0x14040d3eb
mov r14d, r9d
xor r15d, r15d
mov r9d, 1
shr r14d, 1
je 0x14040d3b0
movsxd r9, dword [rsp + 0x30]
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x108], r13
mov dword [rsp + 0xf8], esi
lea rax, [rsp + r9*8 + 0x310]
mov qword [rsp + 0x20], rax
lea rax, [rsp + r9*8 + 0x390]
lea r9, [rsp + r9*8 + 0x110]
mov qword [rsp + 0x100], rdi
mov rsi, rax
mov rbp, qword [rsp + 0x20]
mov rax, r15
mov r13, qword [rsp + 0x38]
add r13, qword [rax + r9]
inc r15
mov rdi, qword [rax + rsi]
add rdi, r13
cmp rdi, r13
mov r13d, 0
mov qword [rax + rbp], rdi
setb r13b
add r13, qword [rax + r9 - 8]
mov rdi, qword [rax + rsi - 8]
add rdi, r13
cmp rdi, r13
mov r13d, 0
mov qword [rax + rbp - 8], rdi
setb r13b
add rax, 0xfffffffffffffff0
cmp r15, r14
jb 0x14040d340
mov qword [rsp + 0x38], r13
lea r9d, [r15 + r15 + 1]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
lea r14d, [r9 - 1]
cmp r14d, dword [rsp + 0x28]
jae 0x14040d3e8
movsxd r9, r9d
movsxd r15, dword [rsp + 0x30]
sub r15, r9
mov r14, qword [rsp + 0x38]
add r14, qword [rsp + r15*8 + 0x118]
add r14, qword [rsp + r15*8 + 0x398]
mov qword [rsp + r15*8 + 0x318], r14
mov r14, qword [rcx]
jmp 0x14040d3eb
mov r14, qword [rcx]
test r14, r14
jne 0x14040d401
dec r10
lea rcx, [rsp + r10*8 + 0x310]
cmp qword [rcx], 0
je 0x14040d3f0
mov r9, qword [rsp + 0x318]
test r9, r9
jle 0x14040fca6
add r9, r9
dec r11
mov qword [rsp + 0x318], r9
cmp r10, 2
jb 0x14040d510
mov dword [rsp + 0x20], 0
lea r14, [r10 - 1]
mov r15d, 1
shr r14, 1
je 0x14040d4d7
mov qword [rsp + 0x100], rdi
mov dword [rsp + 0xf8], esi
mov eax, dword [rsp + 0x20]
nop dword [rax + rax]
movsxd rsi, eax
inc eax
shl rsi, 4
mov rdi, qword [rsp + rsi + 0x320]
mov r15, rdi
shr r15, 0x3f
add rdi, rdi
or r9, r15
mov qword [rsp + rsi + 0x318], r9
mov r9, qword [rsp + rsi + 0x328]
mov r15, r9
shr r15, 0x3f
add r9, r9
or rdi, r15
mov qword [rsp + rsi + 0x320], rdi
cmp rax, r14
jb 0x14040d460
mov dword [rsp + 0x20], eax
mov r14d, eax
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
lea r15d, [r14 + r14]
movsxd r14, r14d
shl r14, 4
movsxd r15, r15d
inc r15
mov qword [rsp + r14 + 0x318], r9
dec r15
lea r14, [r10 - 1]
mov r9d, r15d
cmp r9, r14
jae 0x14040d508
mov r14, qword [rsp + r15*8 + 0x320]
mov r9, r14
shr r9, 0x3f
add r14, r14
or qword [rsp + r15*8 + 0x318], r9
mov qword [rsp + r15*8 + 0x320], r14
cmp qword [rcx], 0
je 0x14040d51a
jmp 0x14040d527
cmp qword [rcx], 0
jne 0x14040d5d4
dec r10
cmp r10, 2
jb 0x14040d5d4
mov rcx, qword [rsp + 0x328]
mov r10d, 2
shr rcx, 0x3f
mov r9, qword [rsp + 0x320]
add r9, rcx
mov qword [rsp + 0x320], r9
cmp r9, rcx
jae 0x14040d5b9
mov qword [rsp + 0x310], 0
mov r10d, 1
cmp qword [rsp + 0x318], 0xffffffffffffffff
je 0x14040d57b
lea rcx, [rsp + 0x318]
mov r9, qword [rcx]
jmp 0x14040d594
dec r10
lea rcx, [rsp + r10*8 + 0x310]
mov r9, qword [rcx]
cmp r9, 0xffffffffffffffff
je 0x14040d57b
test r10, r10
je 0x14040d59c
inc r9
mov qword [rcx], r9
jmp 0x14040d5dc
movabs r9, 0x8000000000000000
mov r10d, 1
mov qword [rsp + 0x318], r9
inc r11
jmp 0x14040d5dc
test r9, r9
jne 0x14040fbd6
dec r10
mov r9, qword [rsp + r10*8 + 0x310]
test r9, r9
je 0x14040d5c2
jmp 0x14040d5dc
mov r9, qword [rsp + r10*8 + 0x310]
cmp qword [rsp + 0x90], 0
je 0x14040df38
mov qword [rsp + 0xb0], r8
mov r8, qword [rsp + 0x90]
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0xa8], rbx
mov rbx, r9
mov r15, qword [rsp + r8*8 + 0x210]
lea r14, [r10 + r8 - 1]
mov r12d, r9d
mov r9, r15
mov dword [rsp + 0x38], r14d
lea rcx, [r10 + r8]
mov qword [rsp + 0x30], rcx
movsxd rcx, r14d
mov r14, r12
shr r9, 0x20
imul r14, r9
mov r15d, r15d
mov rax, r14
shr rbx, 0x20
mov qword [rsp + 0x48], r12
imul r12, r15
imul r9, rbx
imul r15, rbx
shl rax, 0x20
shr r14, 0x20
add r12, rax
add r9, r14
xor r14d, r14d
cmp r12, rax
mov qword [rsp + 0x20], rbx
mov rbx, r15
setb r14b
shl rbx, 0x20
add r12, rbx
add r9, r14
xor r14d, r14d
cmp r12, rbx
setb r14b
shr r15, 0x20
mov qword [rsp + 0x40], rcx
lea rcx, [rsp + rcx*8 + 0x190]
add r9, r15
mov qword [rcx + 8], r12
add r9, r14
xor r15d, r15d
lea r14, [r8 - 1]
mov qword [rcx], r9
mov rbx, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xb0]
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0x80], r11
mov qword [rsp + 0x88], r10
lea rax, [rsp + rax*8 + 0x110]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x100], rdi
mov dword [rsp + 0xf8], esi
mov qword [rsp + 0xa0], r12
lea rax, [rsp + rax*8 + 0x208]
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x108], r13
mov r10, rax
mov r8, qword [rsp + 0x28]
mov rsi, r15
mov r11, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x20]
mov r13, qword [r10 + rsi*8]
mov r12, r13
shr r12, 0x20
mov rax, r11
imul rax, r12
imul r12, rdi
mov ebp, r13d
mov rdx, r11
imul rdx, rbp
imul rbp, rdi
mov r13, rax
inc r15
shl r13, 0x20
shr rax, 0x20
add rdx, r13
add r12, rax
xor eax, eax
cmp rdx, r13
mov r13, rbp
setb al
shl r13, 0x20
add rdx, r13
cmp rdx, r13
mov r13d, 0
setb r13b
add r9, rdx
cmp r9, rdx
mov edx, 0
mov qword [rcx + rsi*8], r9
setb dl
shr rbp, 0x20
mov r9d, r13d
add rax, rbp
add r12, rax
add r9, rdx
mov qword [r8 + rsi*8], 0
add r9, r12
dec rsi
cmp r15, r14
jb 0x14040d744
mov r14, qword [rsp + 0x40]
mov r12, qword [rsp + 0xa0]
sub r14d, r15d
shl r15, 3
neg r15
mov r8, qword [rsp + 0xb0]
mov r11, qword [rsp + 0x80]
mov r10, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
mov qword [r15 + rcx], r9
mov r9d, r14d
movsxd r9, r9d
mov qword [rsp + 0x58], r9
mov qword [rsp + r9*8 + 0x110], 0
lea r15, [r9 - 1]
dec r9d
js 0x14040d9a5
movsxd r9, r15d
inc r9
movsxd r14, r9d
neg r14
dec r14
neg r14
dec r14
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x48], r14
cmp r14, 2
jl 0x14040fc98
sub r15, qword [rsp + 0x50]
mov r9d, 1
lea r14, [rsp + r15*8 + 0x198]
and r14, 0xf
cmovne r14, r9
lea r15, [r14 + 2]
cmp r15, qword [rsp + 0x48]
jg 0x14040fc98
mov r9d, r14d
neg r9d
mov r15, qword [rsp + 0x48]
add r9d, r15d
and r9d, 1
mov rax, qword [rsp + 0x58]
sub r15d, r9d
mov r9, qword [rsp + 0x50]
movsxd r15, r15d
mov qword [rsp + 0x20], r15
lea r15, [rsp + rax*8 + 0x108]
mov qword [rsp + 0x60], 0
shl r9, 3
sub r15, r9
lea rax, [rsp + rax*8 + 0x188]
sub rax, r9
mov qword [rsp + 0x68], rax
test r14, r14
jbe 0x14040d920
mov r9, rax
mov dword [rsp + 0xf8], esi
xor eax, eax
mov rsi, qword [rsp + 0x60]
mov qword [r15 + rsi*8 + 8], rax
mov qword [r9 + rsi*8 + 8], rax
inc rsi
cmp rsi, r14
jb 0x14040d907
mov esi, dword [rsp + 0xf8]
mov rax, r14
mov r9, qword [rsp + 0x20]
mov r14, qword [rsp + 0x68]
movdqu xmmword [r15 + rax*8 + 8], xmm0
movdqu xmmword [r14 + rax*8 + 8], xmm0
add rax, 2
cmp rax, r9
jb 0x14040d92d
mov qword [rsp + 0x20], r9
mov r9, qword [rsp + 0x48]
cmp r9, qword [rsp + 0x20]
jbe 0x14040d9a5
mov r9, qword [rsp + 0x58]
xor eax, eax
mov r15, qword [rsp + 0x50]
shl r15, 3
mov dword [rsp + 0xf8], esi
lea r14, [rsp + r9*8 + 0x108]
mov rsi, qword [rsp + 0x20]
lea r9, [rsp + r9*8 + 0x188]
sub r14, r15
sub r9, r15
mov r15, qword [rsp + 0x48]
mov qword [r14 + rsi*8 + 8], rax
mov qword [r9 + rsi*8 + 8], rax
inc rsi
cmp rsi, r15
jb 0x14040d98c
mov esi, dword [rsp + 0xf8]
dec r10
movsxd r15, r10d
xor r10d, r10d
xor r9d, r9d
test r15, r15
je 0x14040dc26
mov r14, qword [rsp + 0x90]
mov qword [rsp + 0xd0], r15
mov qword [rsp + 0x80], r11
mov qword [rsp + 0x70], rdx
lea rax, [r15 + r14]
mov qword [rsp + 0x58], rax
lea rax, [rsp + r15*8 + 0x310]
mov qword [rsp + 0x60], rax
lea rax, [rsp + r15*8 + 0x110]
mov qword [rsp + 0x68], rax
lea rax, [rsp + r15*8 + 0x190]
mov qword [rsp + 0xc0], rax
lea rax, [r14*8]
mov qword [rsp + 0x50], rax
lea r14, [rsp + r14*8 + 0x210]
mov qword [rsp + 0x48], r14
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x108], r13
mov qword [rsp + 0x100], rdi
mov dword [rsp + 0xf8], esi
mov r15, qword [rsp + 0xc0]
mov r14, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x58]
mov r11, qword [rsp + 0x90]
xor ecx, ecx
xor esi, esi
test r11, r11
je 0x14040dbc6
mov r13, qword [rsp + 0x50]
lea rdi, [r10*8]
sub r13, rdi
neg rdi
add rdi, r15
mov rbx, qword [rdx + r9*8]
mov rbp, rbx
mov r12, qword [rsp + rax*8 + 0x190]
mov qword [rsp + 0x58], rax
lea r8, [r14 + r13]
shr rbp, 0x20
lea rdi, [rdi + r11*8]
mov ebx, ebx
add r13, r15
mov qword [rsp + 0xc8], r9
mov qword [rsp + 0x90], r10
mov rax, qword [rsp + 0x48]
mov r10, qword [rax + rsi*8]
mov rdx, r10
shr rdx, 0x20
mov r14, rbx
imul r14, rdx
imul rdx, rbp
mov r9d, r10d
mov r15, rbx
imul r15, r9
imul r9, rbp
mov r10, r14
dec rsi
shl r10, 0x20
shr r14, 0x20
add r15, r10
add rdx, r14
xor r14d, r14d
cmp r15, r10
mov r10, r9
setb r14b
shl r10, 0x20
add r15, r10
cmp r15, r10
mov r10d, 0
setb r10b
add r12, r15
cmp r12, r15
mov r15d, 0
setb r15b
shr r9, 0x20
add r14, r9
add rdx, r14
add r10, r15
add rdx, r10
lea r9, [rcx*8]
mov r10, rdi
inc rcx
sub r10, r9
mov qword [r10], r12
mov r12, r13
sub r12, r9
neg r9
add r9, r8
mov r12, qword [r12 - 8]
add r12, rdx
cmp r12, rdx
mov edx, 0
setb dl
add qword [r9 - 0x10], rdx
cmp rcx, r11
jb 0x14040dadc
shl rcx, 3
sub rdi, rcx
mov r15, qword [rsp + 0xc0]
mov r14, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x58]
mov r9, qword [rsp + 0xc8]
mov r10, qword [rsp + 0x90]
mov qword [rdi], r12
inc r10
dec rax
dec r9
cmp r10, qword [rsp + 0xd0]
jb 0x14040da7f
mov rbx, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x20]
mov r11, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
mov r10, qword [rsp + 0x30]
add r11, qword [rsp + 0x78]
mov qword [rsp + 0x48], 0
mov r14, qword [rsp + r10*8 + 0x190]
lea r9, [rsp + r10*8 + 0x310]
mov qword [rsp + 0x20], r9
mov qword [r9], r14
cmp dword [rsp + 0x38], 0
je 0x14040dd5c
xor eax, eax
mov r9d, 1
mov r15d, dword [rsp + 0x38]
xor r14d, r14d
shr r15d, 1
je 0x14040dd18
mov r9, qword [rsp + 0x40]
mov qword [rsp + 0x108], r13
mov dword [rsp + 0xf8], esi
lea r9, [rsp + r9*8 + 0x310]
mov qword [rsp + 0x100], rdi
mov r13, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x28]
nop dword [rax + rax]
nop dword [rax + rax]
add r13, qword [r14 + rsi]
inc rax
mov rdi, qword [r14 + rcx]
add rdi, r13
cmp rdi, r13
mov r13d, 0
mov qword [r14 + r9], rdi
setb r13b
add r13, qword [r14 + rsi - 8]
mov rdi, qword [r14 + rcx - 8]
add rdi, r13
cmp rdi, r13
mov r13d, 0
mov qword [r14 + r9 - 8], rdi
setb r13b
add r14, 0xfffffffffffffff0
cmp rax, r15
jb 0x14040dcb0
mov qword [rsp + 0x48], r13
lea r9d, [rax + rax + 1]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
lea ecx, [r9 - 1]
cmp ecx, dword [rsp + 0x38]
jae 0x14040dd54
movsxd r9, r9d
mov r14, qword [rsp + 0x40]
sub r14, r9
mov rcx, qword [rsp + 0x48]
mov r15, qword [rsp + 0x20]
add rcx, qword [rsp + r14*8 + 0x118]
add rcx, qword [rsp + r14*8 + 0x198]
mov qword [rsp + r14*8 + 0x318], rcx
mov r14, qword [r15]
jmp 0x14040dd5c
mov rcx, qword [rsp + 0x20]
mov r14, qword [rcx]
test r14, r14
jne 0x14040dd77
dec r10
lea rcx, [rsp + r10*8 + 0x310]
cmp qword [rcx], 0
je 0x14040dd61
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x318]
test rcx, rcx
jle 0x14040fc84
add rcx, rcx
dec r11
mov qword [rsp + 0x318], rcx
cmp r10, 2
jb 0x14040de67
mov r15d, 1
lea r14, [r10 - 1]
xor r9d, r9d
shr r14, 1
je 0x14040de29
mov dword [rsp + 0xf8], esi
nop dword [rax]
movsxd rsi, r9d
inc r9d
shl rsi, 4
mov r15, qword [rsp + rsi + 0x320]
mov rax, r15
shr rax, 0x3f
add r15, r15
or rcx, rax
mov qword [rsp + rsi + 0x318], rcx
mov rcx, qword [rsp + rsi + 0x328]
mov rax, rcx
shr rax, 0x3f
add rcx, rcx
or r15, rax
mov qword [rsp + rsi + 0x320], r15
cmp r9, r14
jb 0x14040ddc0
mov esi, dword [rsp + 0xf8]
lea r15d, [r9 + r9]
movsxd r9, r9d
shl r9, 4
movsxd r15, r15d
inc r15
mov qword [rsp + r9 + 0x318], rcx
dec r15
lea r9, [r10 - 1]
mov ecx, r15d
cmp rcx, r9
jae 0x14040de5a
mov r9, qword [rsp + r15*8 + 0x320]
mov rcx, r9
shr rcx, 0x3f
add r9, r9
or qword [rsp + r15*8 + 0x318], rcx
mov qword [rsp + r15*8 + 0x320], r9
mov rcx, qword [rsp + 0x20]
cmp qword [rcx], 0
je 0x14040de76
jmp 0x14040de83
mov rcx, qword [rsp + 0x20]
cmp qword [rcx], 0
jne 0x14040df30
dec r10
cmp r10, 2
jb 0x14040df30
mov rcx, qword [rsp + 0x328]
mov r10d, 2
shr rcx, 0x3f
mov r9, qword [rsp + 0x320]
add r9, rcx
mov qword [rsp + 0x320], r9
cmp r9, rcx
jae 0x14040df15
mov qword [rsp + 0x310], 0
mov r10d, 1
cmp qword [rsp + 0x318], 0xffffffffffffffff
je 0x14040ded7
lea rcx, [rsp + 0x318]
mov r9, qword [rcx]
jmp 0x14040def0
dec r10
lea rcx, [rsp + r10*8 + 0x310]
mov r9, qword [rcx]
cmp r9, 0xffffffffffffffff
je 0x14040ded7
test r10, r10
je 0x14040def8
inc r9
mov qword [rcx], r9
jmp 0x14040df38
movabs r9, 0x8000000000000000
mov r10d, 1
mov qword [rsp + 0x318], r9
inc r11
jmp 0x14040df38
test r9, r9
jne 0x14040fbc9
dec r10
mov r9, qword [rsp + r10*8 + 0x310]
test r9, r9
je 0x14040df1e
jmp 0x14040df38
mov r9, qword [rsp + r10*8 + 0x310]
test rdx, rdx
je 0x14040e87f
mov qword [rsp + 0xa0], r12
lea r14, [rdx + r10 - 1]
mov r12, qword [rsp + rdx*8 + 0x290]
mov rcx, r9
mov qword [rsp + 0xa8], rbx
mov ebx, r9d
mov r9, r12
mov dword [rsp + 0x48], r14d
movsxd r15, r14d
shr r9, 0x20
mov r14d, r12d
mov r12, rbx
imul r12, r9
shr rcx, 0x20
mov rax, r12
mov qword [rsp + 0x40], rbx
imul rbx, r14
imul r14, rcx
imul r9, rcx
shl rax, 0x20
mov qword [rsp + 0x38], rcx
add rbx, rax
shr r12, 0x20
mov rcx, r14
shl rcx, 0x20
add r9, r12
xor r12d, r12d
cmp rbx, rax
mov qword [rsp + 0x28], r15
lea r15, [rsp + r15*8 + 0x190]
setb r12b
add rbx, rcx
cmp rbx, rcx
mov qword [r15 + 8], rbx
mov ebx, 0
setb bl
xor ecx, ecx
add r9, r12
shr r14, 0x20
add r9, r14
add r9, rbx
mov qword [rsp + 0x30], r15
mov qword [r15], r9
lea r15, [rdx - 1]
movsxd r15, r15d
mov rbx, qword [rsp + 0xa8]
mov r14, qword [rsp + 0x28]
mov r12, qword [rsp + 0xa0]
test r15, r15
je 0x14040e180
mov qword [rsp + 0xa0], r12
lea rax, [rsp + r14*8 + 0x110]
mov qword [rsp + 0x20], rax
lea rax, [rsp + r15*8 + 0x290]
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0x80], r11
mov qword [rsp + 0x88], r10
mov qword [rsp + 0x100], rdi
mov dword [rsp + 0xf8], esi
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x108], r13
mov r11, rax
mov r10, qword [rsp + 0x20]
mov rdi, rcx
mov rsi, qword [rsp + 0x30]
mov r12, qword [rsp + 0x40]
mov r8, qword [rsp + 0x38]
mov r14, qword [r11 + rdi*8]
mov r13, r14
shr r13, 0x20
mov rax, r12
imul rax, r13
imul r13, r8
mov ebp, r14d
mov rdx, r12
imul rdx, rbp
imul rbp, r8
mov r14, rax
inc rcx
shl r14, 0x20
shr rax, 0x20
add rdx, r14
add r13, rax
xor eax, eax
cmp rdx, r14
mov r14, rbp
setb al
shl r14, 0x20
add rdx, r14
cmp rdx, r14
mov r14d, 0
setb r14b
add r9, rdx
cmp r9, rdx
mov edx, 0
mov qword [rsi + rdi*8], r9
setb dl
shr rbp, 0x20
mov r9d, r14d
add rax, rbp
add r13, rax
add r9, rdx
mov qword [r10 + rdi*8], 0
add r9, r13
dec rdi
cmp rcx, r15
jb 0x14040e08c
mov r14, qword [rsp + 0x28]
mov r15, qword [rsp + 0x30]
sub r14d, ecx
shl rcx, 3
neg rcx
mov r12, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xb0]
mov r11, qword [rsp + 0x80]
mov r10, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
mov dword [rsp + 0x48], r14d
mov qword [rcx + r15], r9
movsxd r14, r14d
mov ecx, dword [rsp + 0x48]
lea r15, [r14 - 1]
dec ecx
mov qword [rsp + r14*8 + 0x110], 0
js 0x14040e2fb
movsxd rcx, r15d
inc rcx
movsxd r9, ecx
neg r9
dec r9
neg r9
dec r9
mov qword [rsp + 0x30], r9
cmp r9, 2
jl 0x14040fc76
sub r15, rcx
mov r9d, 1
lea r15, [rsp + r15*8 + 0x198]
and r15, 0xf
cmovne r15, r9
mov qword [rsp + 0x20], r15
lea r9, [r15 + 2]
cmp r9, qword [rsp + 0x30]
jg 0x14040fc76
mov eax, r15d
neg eax
mov r9, qword [rsp + 0x30]
add eax, r9d
and eax, 1
sub r9d, eax
lea rax, [rsp + r14*8 + 0x108]
movsxd r9, r9d
mov qword [rsp + 0x28], r9
lea r9, [rcx*8]
sub rax, r9
mov qword [rsp + 0x40], rax
lea rax, [rsp + r14*8 + 0x188]
sub rax, r9
mov qword [rsp + 0x38], 0
test r15, r15
jbe 0x14040e27e
mov r9, r15
mov qword [rsp + 0x100], rdi
xor r15d, r15d
mov dword [rsp + 0xf8], esi
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov qword [rdi + rsi*8 + 8], r15
mov qword [rax + rsi*8 + 8], r15
inc rsi
cmp rsi, r9
jb 0x14040e258
mov qword [rsp + 0x20], r9
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
mov dword [rsp + 0xf8], esi
mov rsi, qword [rsp + 0x28]
mov r9, qword [rsp + 0x40]
mov r15, qword [rsp + 0x20]
movdqu xmmword [r9 + r15*8 + 8], xmm0
movdqu xmmword [rax + r15*8 + 8], xmm0
add r15, 2
cmp r15, rsi
jb 0x14040e294
mov qword [rsp + 0x28], rsi
mov esi, dword [rsp + 0xf8]
mov r9, qword [rsp + 0x30]
cmp r9, qword [rsp + 0x28]
jbe 0x14040e2fb
shl rcx, 3
lea r15, [rsp + r14*8 + 0x108]
sub r15, rcx
lea r9, [rsp + r14*8 + 0x188]
mov r14, qword [rsp + 0x30]
sub r9, rcx
mov rcx, qword [rsp + 0x28]
xor eax, eax
mov qword [r15 + rcx*8 + 8], rax
mov qword [r9 + rcx*8 + 8], rax
inc rcx
cmp rcx, r14
jb 0x14040e2e9
xor ecx, ecx
lea r15, [r10 - 1]
movsxd r15, r15d
xor r9d, r9d
test r15, r15
je 0x14040e55a
movsxd r14, edx
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x108], r13
mov qword [rsp + 0xa8], rbx
lea rax, [r15 + r14]
mov qword [rsp + 0x40], rax
lea rax, [rsp + r15*8 + 0x310]
mov qword [rsp + 0x48], rax
lea rax, [rsp + r15*8 + 0x110]
mov qword [rsp + 0x50], rax
lea rax, [rsp + r15*8 + 0x190]
mov qword [rsp + 0x58], rax
lea rax, [r14*8]
mov qword [rsp + 0x28], rax
lea rax, [rsp + r14*8 + 0x290]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0x80], r11
mov qword [rsp + 0x88], r10
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x100], rdi
mov dword [rsp + 0xf8], esi
mov r15, qword [rsp + 0x58]
mov r13, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
xor ebx, ebx
xor edi, edi
test r14, r14
je 0x14040e4fa
mov r12, qword [rsp + 0x28]
lea r8, [rcx*8]
sub r12, r8
neg r8
add r8, r15
mov rbp, qword [rdx + r9*8]
mov rsi, rbp
mov r11, qword [rsp + rax*8 + 0x190]
mov qword [rsp + 0x40], rax
lea r10, [r13 + r12]
shr rsi, 0x20
lea r8, [r8 + r14*8]
mov ebp, ebp
add r12, r15
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x30], rcx
mov rax, qword [rsp + 0x20]
mov r9, qword [rax + rdi*8]
mov rdx, r9
shr rdx, 0x20
mov r13, rbp
imul r13, rdx
imul rdx, rsi
mov ecx, r9d
mov r15, rbp
imul r15, rcx
imul rcx, rsi
mov r9, r13
dec rdi
shl r9, 0x20
shr r13, 0x20
add r15, r9
add rdx, r13
xor r13d, r13d
cmp r15, r9
mov r9, rcx
setb r13b
shl r9, 0x20
add r15, r9
cmp r15, r9
mov r9d, 0
setb r9b
add r11, r15
cmp r11, r15
mov r15d, 0
setb r15b
shr rcx, 0x20
add r13, rcx
add rdx, r13
add r9, r15
add rdx, r9
lea rcx, [rbx*8]
mov r9, r8
inc rbx
sub r9, rcx
mov qword [r9], r11
mov r11, r12
sub r11, rcx
neg rcx
add rcx, r10
mov r11, qword [r11 - 8]
add r11, rdx
cmp r11, rdx
mov edx, 0
setb dl
add qword [rcx - 0x10], rdx
cmp rbx, r14
jb 0x14040e41a
shl rbx, 3
sub r8, rbx
mov r15, qword [rsp + 0x58]
mov r13, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov qword [r8], r11
inc rcx
dec rax
dec r9
cmp rcx, qword [rsp + 0x60]
jb 0x14040e3c2
mov rbx, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xb0]
mov r11, qword [rsp + 0x80]
mov r10, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
add r10, rdx
add r11, qword [rsp + 0xb8]
mov qword [rsp + 0x38], 0
mov r9, qword [rsp + r10*8 + 0x190]
lea rcx, [rsp + r10*8 + 0x310]
mov qword [rsp + 0x30], rcx
mov qword [rcx], r9
lea rcx, [r10 - 1]
mov eax, ecx
test eax, eax
je 0x14040e6b7
mov r15d, eax
xor r14d, r14d
mov r9d, 1
shr r15d, 1
je 0x14040e676
movsxd rdx, ecx
mov qword [rsp + 0x28], r15
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x100], rdi
lea r9, [rsp + rdx*8 + 0x190]
mov qword [rsp + 0x20], r9
lea r15, [rsp + rdx*8 + 0x310]
mov dword [rsp + 0xf8], esi
lea r9, [rsp + rdx*8 + 0x110]
mov qword [rsp + 0x108], r13
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov rbp, r14
mov rdx, qword [rsp + 0x38]
nop
add rdx, qword [rbp + r9]
inc r14
mov r13, qword [rbp + rdi]
add r13, rdx
cmp r13, rdx
mov qword [rbp + r15], r13
mov r13d, 0
setb r13b
add r13, qword [rbp + r9 - 8]
mov rdx, qword [rbp + rdi - 8]
add rdx, r13
cmp rdx, r13
mov r13d, 0
mov qword [rbp + r15 - 8], rdx
setb r13b
add rbp, 0xfffffffffffffff0
mov edx, r13d
cmp r14, rsi
jb 0x14040e600
mov qword [rsp + 0x38], rdx
lea r9d, [r14 + r14 + 1]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
lea r14d, [r9 - 1]
cmp r14d, eax
jae 0x14040e6af
movsxd r14, ecx
movsxd r9, r9d
sub r14, r9
mov rcx, qword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
add rcx, qword [rsp + r14*8 + 0x118]
add rcx, qword [rsp + r14*8 + 0x198]
mov qword [rsp + r14*8 + 0x318], rcx
mov r9, qword [r15]
jmp 0x14040e6b7
mov rcx, qword [rsp + 0x30]
mov r9, qword [rcx]
test r9, r9
jne 0x14040e6d2
dec r10
lea rcx, [rsp + r10*8 + 0x310]
cmp qword [rcx], 0
je 0x14040e6bc
mov qword [rsp + 0x30], rcx
mov r15, qword [rsp + 0x318]
test r15, r15
jle 0x14040fc62
add r15, r15
dec r11
mov qword [rsp + 0x318], r15
cmp r10, 2
jb 0x14040e7ae
mov ecx, 1
lea r14, [r10 - 1]
xor eax, eax
shr r14, 1
je 0x14040e770
nop dword [rax + rax]
movsxd rcx, eax
inc eax
shl rcx, 4
mov r9, qword [rsp + rcx + 0x320]
mov rdx, r9
shr rdx, 0x3f
add r9, r9
or r15, rdx
mov qword [rsp + rcx + 0x318], r15
mov r15, qword [rsp + rcx + 0x328]
mov rdx, r15
shr rdx, 0x3f
add r15, r15
or r9, rdx
mov qword [rsp + rcx + 0x320], r9
cmp rax, r14
jb 0x14040e710
lea ecx, [rax + rax]
movsxd rax, eax
shl rax, 4
movsxd rcx, ecx
inc rcx
mov qword [rsp + rax + 0x318], r15
dec rcx
lea r14, [r10 - 1]
mov r9d, ecx
cmp r9, r14
jae 0x14040e7a1
mov r14, qword [rsp + rcx*8 + 0x320]
mov r9, r14
shr r9, 0x3f
add r14, r14
or qword [rsp + rcx*8 + 0x318], r9
mov qword [rsp + rcx*8 + 0x320], r14
mov rcx, qword [rsp + 0x30]
cmp qword [rcx], 0
je 0x14040e7bd
jmp 0x14040e7ca
mov rcx, qword [rsp + 0x30]
cmp qword [rcx], 0
jne 0x14040e877
dec r10
cmp r10, 2
jb 0x14040e877
mov rcx, qword [rsp + 0x328]
mov r10d, 2
shr rcx, 0x3f
mov r9, qword [rsp + 0x320]
add r9, rcx
mov qword [rsp + 0x320], r9
cmp r9, rcx
jae 0x14040e85c
mov qword [rsp + 0x310], 0
mov r10d, 1
cmp qword [rsp + 0x318], 0xffffffffffffffff
je 0x14040e81e
lea rcx, [rsp + 0x318]
mov r9, qword [rcx]
jmp 0x14040e837
dec r10
lea rcx, [rsp + r10*8 + 0x310]
mov r9, qword [rcx]
cmp r9, 0xffffffffffffffff
je 0x14040e81e
test r10, r10
je 0x14040e83f
inc r9
mov qword [rcx], r9
jmp 0x14040e87f
movabs r9, 0x8000000000000000
mov r10d, 1
mov qword [rsp + 0x318], r9
inc r11
jmp 0x14040e87f
test r9, r9
jne 0x14040fbe3
dec r10
mov r9, qword [rsp + r10*8 + 0x310]
test r9, r9
je 0x14040e865
jmp 0x14040e87f
mov r9, qword [rsp + r10*8 + 0x310]
mov rcx, qword [rsp + 0x98]
mov r14, qword [rsp + 0xe8]
mov qword [rsp + 0xa8], rbx
mov rcx, qword [rcx]
lea r15, [r14 + r10]
mov qword [rsp + 0x28], r15
mov r15d, ecx
lea rbx, [r14 + r10 - 1]
mov r14, rcx
mov rcx, r9
mov dword [rsp + 0x30], ebx
movsxd rax, ebx
mov dword [rsp + 0x20], ebx
mov rbx, r15
shr rcx, 0x20
imul rbx, rcx
mov r9d, r9d
lea rdx, [rsp + rax*8 + 0x190]
shr r14, 0x20
mov qword [rsp + 0x50], r15
imul r15, r9
imul r9, r14
imul rcx, r14
mov qword [rsp + 0x38], rax
mov rax, rbx
shl rax, 0x20
shr rbx, 0x20
add r15, rax
mov qword [rsp + 0x48], r14
mov r14, r9
add rcx, rbx
xor ebx, ebx
cmp r15, rax
setb bl
shl r14, 0x20
add r15, r14
cmp r15, r14
mov qword [rdx + 8], r15
mov r15d, 0
setb r15b
add rcx, rbx
shr r9, 0x20
xor r14d, r14d
add rcx, r9
lea r9, [r10 - 1]
movsxd rax, r9d
add rcx, r15
mov qword [rsp + 0x40], rdx
xor r15d, r15d
mov qword [rdx], rcx
mov edx, dword [rsp + 0x20]
mov r9, qword [rsp + 0x38]
mov rbx, qword [rsp + 0xa8]
test rax, rax
je 0x14040eabc
mov qword [rsp + 0xb0], r8
lea rdx, [rsp + r9*8 + 0x110]
mov qword [rsp + 0x20], rdx
lea rdx, [rsp + rax*8 + 0x310]
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x80], r11
mov qword [rsp + 0x88], r10
mov qword [rsp + 0x100], rdi
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x108], r13
mov dword [rsp + 0xf8], esi
mov r10, rdx
mov r9, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x40]
mov r11, qword [rsp + 0x50]
mov r8, qword [rsp + 0x48]
mov r13, qword [r10 + r15*8]
mov r12, r13
shr r12, 0x20
mov rdx, r11
imul rdx, r12
imul r12, r8
mov esi, r13d
mov rbp, r11
imul rbp, rsi
imul rsi, r8
mov r13, rdx
inc r14
shl r13, 0x20
shr rdx, 0x20
add rbp, r13
add r12, rdx
xor edx, edx
cmp rbp, r13
mov r13, rsi
setb dl
shl r13, 0x20
add rbp, r13
cmp rbp, r13
mov r13d, 0
setb r13b
add rcx, rbp
cmp rcx, rbp
mov ebp, 0
mov qword [rdi + r15*8], rcx
setb bpl
shr rsi, 0x20
mov ecx, r13d
add rdx, rsi
add r12, rdx
add rcx, rbp
mov qword [r9 + r15*8], 0
add rcx, r12
dec r15
cmp r14, rax
jb 0x14040e9d1
mov r9, qword [rsp + 0x38]
mov edx, r9d
sub edx, r14d
shl r14, 3
neg r14
mov r15, qword [rsp + 0x40]
mov r12, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xb0]
mov r11, qword [rsp + 0x80]
mov r10, qword [rsp + 0x88]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
mov qword [r14 + r15], rcx
movsxd rdx, edx
mov qword [rsp + 0x48], rdx
mov qword [rsp + rdx*8 + 0x110], 0
lea r15, [rdx - 1]
dec edx
js 0x14040ec57
movsxd rcx, r15d
inc rcx
movsxd r14, ecx
neg r14
dec r14
neg r14
dec r14
cmp r14, 2
jl 0x14040fc5b
sub r15, rcx
lea rax, [rsp + r15*8 + 0x198]
mov r15d, 1
and rax, 0xf
cmovne rax, r15
mov qword [rsp + 0x20], rax
lea r15, [rax + 2]
cmp r14, r15
jl 0x14040fc5b
mov r15, rax
mov eax, r14d
mov qword [rsp + 0xa8], rbx
mov ebx, r15d
neg ebx
add ebx, eax
and ebx, 1
sub eax, ebx
lea rbx, [rcx*8]
movsxd rax, eax
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x50], 0
lea rdx, [rsp + rax*8 + 0x108]
sub rdx, rbx
mov qword [rsp + 0x60], rdx
lea rdx, [rsp + rax*8 + 0x188]
sub rdx, rbx
mov qword [rsp + 0x58], rdx
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0xa8]
test r15, r15
jbe 0x14040ebec
mov qword [rsp + 0x108], r13
xor r15d, r15d
mov qword [rsp + 0x100], rdi
mov dword [rsp + 0xf8], esi
mov rax, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
mov r13, qword [rsp + 0x20]
mov qword [rdi + rax*8 + 8], r15
mov qword [rsi + rax*8 + 8], r15
inc rax
cmp rax, r13
jb 0x14040ebbe
mov qword [rsp + 0x20], r13
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
mov dword [rsp + 0xf8], esi
mov rsi, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
mov rax, qword [rsp + 0x20]
movdqu xmmword [r15 + rax*8 + 8], xmm0
movdqu xmmword [rsi + rax*8 + 8], xmm0
add rax, 2
cmp rax, rdx
jb 0x14040ec02
mov esi, dword [rsp + 0xf8]
cmp rdx, r14
jae 0x14040ec57
mov r15, qword [rsp + 0x48]
shl rcx, 3
lea rax, [rsp + r15*8 + 0x108]
sub rax, rcx
lea r15, [rsp + r15*8 + 0x188]
sub r15, rcx
xor ecx, ecx
mov qword [rax + rdx*8 + 8], rcx
mov qword [r15 + rdx*8 + 8], rcx
inc rdx
cmp rdx, r14
jb 0x14040ec45
mov rcx, qword [rsp + 0xe8]
xor r14d, r14d
dec rcx
xor r15d, r15d
movsxd rax, ecx
test rax, rax
je 0x14040eeaa
movsxd r10, r10d
lea rdx, [rsp + rax*8 + 0x410]
mov qword [rsp + 0x68], rdx
lea rdx, [rsp + rax*8 + 0x110]
mov qword [rsp + 0x70], rdx
lea rdx, [rsp + rax*8 + 0x190]
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x88], rax
lea rdx, [r10*8]
mov qword [rsp + 0x48], rdx
lea rdx, [rsp + r10*8 + 0x310]
mov qword [rsp + 0x20], rdx
lea rcx, [rax + r10]
mov qword [rsp + 0x108], r13
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x80], r11
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x100], rdi
mov dword [rsp + 0xf8], esi
mov r13, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x68]
xor ebx, ebx
xor edi, edi
test r10, r10
je 0x14040ee4f
mov r12, qword [rsp + 0x48]
lea r8, [r14*8]
sub r12, r8
neg r8
add r8, r13
mov rbp, qword [rax + r15*8]
mov rsi, rbp
mov r11, qword [rsp + rcx*8 + 0x190]
shr rsi, 0x20
lea r9, [rdx + r12]
mov ebp, ebp
lea r8, [r8 + r10*8]
mov qword [rsp + 0x60], rcx
add r12, r13
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x50], r14
mov rax, qword [rsp + 0x20]
mov r13, qword [rax + rdi*8]
mov rdx, r13
shr rdx, 0x20
mov r14, rbp
imul r14, rdx
imul rdx, rsi
mov ecx, r13d
mov r15, rbp
imul r15, rcx
imul rcx, rsi
mov r13, r14
dec rdi
shl r13, 0x20
shr r14, 0x20
add r15, r13
add rdx, r14
xor r14d, r14d
cmp r15, r13
mov r13, rcx
setb r14b
shl r13, 0x20
add r15, r13
cmp r15, r13
mov r13d, 0
setb r13b
add r11, r15
cmp r11, r15
mov r15d, 0
setb r15b
shr rcx, 0x20
add r14, rcx
add rdx, r14
add r13, r15
add rdx, r13
lea rcx, [rbx*8]
mov r13, r8
inc rbx
sub r13, rcx
mov qword [r13], r11
mov r11, r12
sub r11, rcx
neg rcx
add rcx, r9
mov r11, qword [r11 - 8]
add r11, rdx
cmp r11, rdx
mov edx, 0
setb dl
add qword [rcx - 0x10], rdx
cmp rbx, r10
jb 0x14040ed6e
shl rbx, 3
sub r8, rbx
mov r13, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov r15, qword [rsp + 0x58]
mov r14, qword [rsp + 0x50]
mov qword [r8], r11
inc r14
dec rcx
dec r15
cmp r14, qword [rsp + 0x88]
jb 0x14040ed17
mov rbx, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xb0]
mov r9, qword [rsp + 0x38]
mov r11, qword [rsp + 0x80]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
mov rcx, qword [rsp + 0x28]
add r8, r11
mov qword [rsp + 0xe8], rcx
xor r15d, r15d
cmp dword [rsp + 0x30], 0
lea rdx, [rsp + rcx*8 + 0x410]
mov rcx, qword [rdx - 0x280]
mov qword [rdx], rcx
je 0x14040efab
xor eax, eax
mov ecx, 1
mov r11d, dword [rsp + 0x30]
xor r10d, r10d
shr r11d, 1
je 0x14040ef7a
mov dword [rsp + 0xf8], esi
lea r14, [rsp + r9*8 + 0x410]
lea rcx, [rsp + r9*8 + 0x110]
mov qword [rsp + 0x100], rdi
mov rsi, qword [rsp + 0x40]
nop dword [rax]
nop dword [rax]
add r15, qword [r10 + rcx]
inc rax
mov rdi, qword [r10 + rsi]
add rdi, r15
cmp rdi, r15
mov r15d, 0
mov qword [r10 + r14], rdi
setb r15b
add r15, qword [r10 + rcx - 8]
mov rdi, qword [r10 + rsi - 8]
add rdi, r15
cmp rdi, r15
mov r15d, 0
mov qword [r10 + r14 - 8], rdi
setb r15b
add r10, 0xfffffffffffffff0
cmp rax, r11
jb 0x14040ef20
mov rdi, qword [rsp + 0x100]
lea ecx, [rax + rax + 1]
mov esi, dword [rsp + 0xf8]
lea r10d, [rcx - 1]
cmp r10d, dword [rsp + 0x30]
jae 0x14040efa8
movsxd rcx, ecx
sub r9, rcx
add r15, qword [rsp + r9*8 + 0x118]
add r15, qword [rsp + r9*8 + 0x198]
mov qword [rsp + r9*8 + 0x418], r15
mov rcx, qword [rdx]
jmp 0x14040efab
mov rcx, qword [rdx]
test rcx, rcx
jne 0x14040efd1
mov rcx, qword [rsp + 0xe8]
dec rcx
lea rdx, [rsp + rcx*8 + 0x410]
cmp qword [rdx], 0
je 0x14040efb8
mov qword [rsp + 0xe8], rcx
mov r10, qword [rsp + 0x418]
test r10, r10
jle 0x14040f0d0
add r10, r10
dec r8
mov qword [rsp + 0x418], r10
cmp qword [rsp + 0xe8], 2
jb 0x14040f0c0
mov rcx, qword [rsp + 0xe8]
xor r9d, r9d
mov r11d, 1
lea rcx, [rcx - 1]
shr rcx, 1
je 0x14040f082
nop dword [rax]
movsxd rax, r9d
inc r9d
shl rax, 4
mov r15, qword [rsp + rax + 0x420]
mov r11, r15
shr r11, 0x3f
add r15, r15
or r10, r11
mov qword [rsp + rax + 0x418], r10
mov r10, qword [rsp + rax + 0x428]
mov r14, r10
shr r14, 0x3f
add r10, r10
or r15, r14
mov qword [rsp + rax + 0x420], r15
cmp r9, rcx
jb 0x14040f020
lea r11d, [r9 + r9]
movsxd r9, r9d
shl r9, 4
movsxd r11, r11d
inc r11
mov qword [rsp + r9 + 0x418], r10
mov rcx, qword [rsp + 0xe8]
dec r11
mov r9d, r11d
lea r10, [rcx - 1]
cmp r9, r10
jae 0x14040f0c0
mov r9, qword [rsp + r11*8 + 0x420]
mov rcx, r9
shr rcx, 0x3f
add r9, r9
or qword [rsp + r11*8 + 0x418], rcx
mov qword [rsp + r11*8 + 0x420], r9
mov rcx, qword [rdx]
jmp 0x14040f0c3
mov rcx, qword [rdx]
cmp rcx, 1
sbb qword [rsp + 0xe8], 0
movsxd r10, esi
mov r9d, esi
mov rcx, r10
and r9d, 0x80000000
shr rcx, 0x16
mov r11d, 6
movsxd r9, r9d
and rcx, 7
or r9, rcx
cmove rcx, r11
mov r9, rcx
and r9, 2
test rcx, 4
je 0x14040f122
mov r11d, 0xfa
test r9, r9
mov r9d, 0xaaaa
cmovne r11d, r9d
mov dword [rsp + 0x30], r11d
jmp 0x14040f14a
test r9, r9
je 0x14040f131
mov dword [rsp + 0x30], 0xfa00
jmp 0x14040f14a
mov r9d, 0xa8a8
xor r11d, r11d
test rcx, 1
cmove r11d, r9d
mov dword [rsp + 0x30], r11d
lea r15, [r8 + 0x406e]
cmp r15, 0x71
jle 0x14040f15f
mov r15d, 0x71
jmp 0x14040f168
test r15, r15
js 0x14040fc4f
mov r14, r15
xor r9d, r9d
and r15, 0x3f
setne r9b
sar r14, 6
mov qword [rsp + 0x50], r9
add r9, r14
cmp r9, qword [rsp + 0xe8]
jbe 0x14040f1a5
add rcx, 0xfffffffffffffffe
test rcx, 0xfffffffffffffffd
je 0x14040f1a5
mov r11, rbx
and r11, 8
jmp 0x14040f474
mov rcx, qword [rsp + r9*8 + 0x410]
mov r11, qword [rsp + 0xe8]
mov qword [rsp + 0xe8], r9
mov qword [rsp + 0x48], rcx
cmp qword [rsp + 0x50], 0
je 0x14040f2ce
neg r15
lea rax, [r15 + 0x3f]
add r15, 0x40
mov dword [rsp + 0x28], r15d
mov ecx, eax
mov r15, qword [rsp + 0x48]
mov rdx, r15
shr rdx, cl
and rdx, 1
mov qword [rsp + 0x40], rdx
mov edx, 1
mov ecx, dword [rsp + 0x28]
shl rdx, cl
mov qword [rsp + 0x20], rdx
mov rdx, r15
shr rdx, cl
mov ecx, eax
mov eax, 1
and rdx, 1
shl rax, cl
dec rax
and rax, r15
or qword [rsp + 0xf0], rax
mov qword [rsp + 0x38], rdx
cmp r11, r9
jbe 0x14040f3a2
mov rcx, qword [rsp + 0x50]
lea rax, [r14 + rcx + 1]
cmp rax, r11
ja 0x14040f3a2
sub r11, rax
xor r14d, r14d
inc r11
mov ecx, 1
mov r15, r11
shr r15, 1
je 0x14040f2a1
mov dword [rsp + 0xf8], esi
lea rcx, [rsp + rax*8 + 0x410]
mov rsi, qword [rsp + 0xf0]
mov rdx, r14
or rsi, qword [rdx + rcx]
inc r14
or rsi, qword [rdx + rcx + 8]
add rdx, 0x10
cmp r14, r15
jb 0x14040f278
mov qword [rsp + 0xf0], rsi
lea rcx, [r14 + r14 + 1]
mov esi, dword [rsp + 0xf8]
lea r14, [rcx - 1]
cmp r14, r11
jae 0x14040f3a2
add rcx, rax
mov r11, qword [rsp + 0xf0]
or r11, qword [rsp + rcx*8 + 0x408]
mov qword [rsp + 0xf0], r11
jmp 0x14040f3a2
and rcx, 1
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + r9*8 + 0x418]
mov r15, rcx
add rcx, rcx
or qword [rsp + 0xf0], rcx
mov rcx, qword [rsp + 0x50]
shr r15, 0x3f
mov qword [rsp + 0x20], 1
mov qword [rsp + 0x40], r15
lea rcx, [r14 + rcx + 1]
cmp r11, rcx
jbe 0x14040f3a2
mov rcx, qword [rsp + 0x50]
lea rax, [r14 + rcx + 2]
add r14, 2
cmp r14, r11
ja 0x14040f3a2
sub r11, rax
xor r14d, r14d
inc r11
mov edx, 1
mov rcx, r11
xor r15d, r15d
shr rcx, 1
je 0x14040f37e
mov dword [rsp + 0xf8], esi
lea rdx, [rsp + rax*8 + 0x410]
mov rsi, qword [rsp + 0xf0]
or rsi, qword [r15 + rdx]
inc r14
or rsi, qword [r15 + rdx + 8]
add r15, 0x10
cmp r14, rcx
jb 0x14040f355
mov qword [rsp + 0xf0], rsi
lea rdx, [r14 + r14 + 1]
mov esi, dword [rsp + 0xf8]
lea rcx, [rdx - 1]
cmp rcx, r11
jae 0x14040f3a2
add rdx, rax
mov rcx, qword [rsp + 0xf0]
or rcx, qword [rsp + rdx*8 + 0x408]
mov qword [rsp + 0xf0], rcx
mov r14, qword [rsp + 0x38]
xor r15d, r15d
mov r11, qword [rsp + 0x40]
cmp qword [rsp + 0xf0], 0
setne r15b
lea rcx, [r11 + r14*2]
mov r11, rbx
and r11, 8
lea r14, [r11 + r15*4]
mov r15d, dword [rsp + 0x30]
add r14, rcx
mov ecx, r14d
shr r15d, cl
test r15d, 1
je 0x14040f474
test r9, r9
je 0x14040f446
mov r14, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x48]
add rcx, r14
mov qword [rsp + 0x48], rcx
cmp rcx, r14
jae 0x14040fbf0
mov qword [rsp + r9*8 + 0x410], rcx
mov qword [rsp + 0x410], 0
mov r9, qword [rsp + 0xe8]
dec r9
mov rcx, qword [rsp + r9*8 + 0x410]
cmp rcx, 0xffffffffffffffff
je 0x14040f422
mov qword [rsp + 0xe8], r9
cmp qword [rsp + 0xe8], 0
jne 0x14040f469
movabs rcx, 0x8000000000000000
inc r8
mov qword [rsp + 0xe8], 1
mov qword [rsp + 0x418], rcx
jmp 0x14040f474
inc rcx
mov qword [rsp + r9*8 + 0x410], rcx
cmp r8, 0x4000
jle 0x14040f535
and r10, 0x1c00000
cmp r10, 0x400000
je 0x14040f50f
cmp r10, 0x1000000
jne 0x14040f4b3
test r11, r11
je 0x14040f4d5
movups xmm0, xmmword [0x1405a1150]
movups xmmword [rsp + 0x490], xmm0
jmp 0x14040f69b
cmp r10, 0x800000
jne 0x14040f4d5
test r11, r11
jne 0x14040f4d5
movups xmm0, xmmword [0x1405a1140]
movups xmmword [rsp + 0x490], xmm0
jmp 0x14040f69b
test r11, r11
lea rcx, [0x1405a10d0]
lea r8, [0x1405a10c0]
mov r9, rbx
cmovne r8, rcx
or r9, 0x8000000
test esi, 0x2000
cmovne rbx, r9
movups xmm0, xmmword [r8]
movups xmmword [rsp + 0x490], xmm0
jmp 0x14040f69b
test r11, r11
lea rcx, [0x1405a1150]
lea r8, [0x1405a1140]
cmovne r8, rcx
movups xmm0, xmmword [r8]
movups xmmword [rsp + 0x490], xmm0
jmp 0x14040f69b
cmp r8, 0xffffffffffffc002
jg 0x14040f5dc
cmp r8, 0xffffffffffffbf93
jl 0x14040f557
test esi, 0x10000000
je 0x14040f5dc
and r10, 0x1c00000
cmp r10, 0x1000000
jne 0x14040f580
test r11, r11
jne 0x14040f5a2
movups xmm0, xmmword [0x1405a10e0]
movups xmmword [rsp + 0x490], xmm0
jmp 0x14040f69b
cmp r10, 0x800000
jne 0x14040f5a2
test r11, r11
je 0x14040f5a2
movups xmm0, xmmword [0x1405a10f0]
movups xmmword [rsp + 0x490], xmm0
jmp 0x14040f69b
test r11, r11
lea rcx, [0x1405a1090]
lea r8, [0x1405a1080]
mov r9, rbx
cmovne r8, rcx
or r9, 0x9000000
test esi, 0x4000
cmovne rbx, r9
movups xmm0, xmmword [r8]
movups xmmword [rsp + 0x490], xmm0
jmp 0x14040f69b
mov r10, qword [rsp + 0x418]
cmp qword [rsp + 0xe8], 2
jae 0x14040f5f4
xor r9d, r9d
jmp 0x14040f5fc
mov r9, qword [rsp + 0x420]
cmp r8, 0xffffffffffffc002
jle 0x14040f632
shl r8, 0x30
mov rcx, r10
shr r10, 0xf
movabs r14, 0x3ffe000000000000
shr r9, 0xf
btr r10, 0x30
shl rcx, 0x31
add r8, r14
or r9, rcx
or r10, r8
jmp 0x14040f671
add r8, 0x406e
neg r8d
add r8d, 0x80
cmp r8d, 0x40
jl 0x14040f657
mov ecx, r8d
mov r9, r10
shr r9, cl
xor r10d, r10d
jmp 0x14040f671
mov ecx, r8d
mov r14, r10
shr r9, cl
mov ecx, r8d
neg ecx
shl r14, cl
mov ecx, r8d
or r9, r14
shr r10, cl
movabs rcx, 0x8000000000000000
movq xmm1, r9
or rcx, r10
test r11, r11
cmovne r10, rcx
movq xmm0, r10
unpcklpd xmm1, xmm0
movups xmmword [rsp + 0x490], xmm1
test r13, r13
je 0x14040f6b2
test esi, 0x40000
je 0x14040f6ae
mov qword [r13], rbp
jmp 0x14040f6b2
mov qword [r13], r12
mov rdx, qword [rsp + 0x528]
test rdx, rdx
je 0x14040f6c5
shr rbx, 0x18
mov dword [rdx], ebx
movups xmm0, xmmword [rsp + 0x490]
movups xmmword [rdi], xmm0
mov rcx, qword [rsp + 0x4a0]
mov qword [rsp + 0x4a0], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x14040fab9
mov rax, rdi
add rsp, 0x4a8
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rbx, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xb0]
mov r9, qword [rsp + 0x60]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
jmp 0x14040c218
lea rcx, [rsp + 0x530]
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x20]
add rcx, 8
mov qword [rsp + 0x20], rcx
mov ecx, dword [rcx - 8]
mov qword [rsp + 0x20], 0
jmp 0x14040a6e8
call fcn.14043dac0
mov r13, qword [rsp + 0x50]
mov esi, dword [rsp + 0xf8]
jmp 0x14040aafb
mov qword [rsp + 0x50], r13
mov r14, qword [rsp + 0x58]
mov r8, qword [rsp + 0x20]
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
jmp 0x14040abe7
mov r8d, ecx
xor r10d, r10d
mov r11d, 1
xor r9d, r9d
shr r8d, 1
je 0x14040fb78
mov r11, qword [rsp + r9 + 0x198]
inc r10
mov r15, qword [rsp + r9 + 0x1a0]
mov qword [rsp + r9 + 0x418], r11
mov qword [rsp + r9 + 0x420], r15
add r9, 0x10
cmp r10, r8
jb 0x14040fb47
lea r11d, [r10 + r10 + 1]
lea r8d, [r11 - 1]
cmp r8d, ecx
jae 0x14040af73
movsxd r11, r11d
mov rcx, qword [rsp + r11*8 + 0x190]
mov qword [rsp + r11*8 + 0x410], rcx
jmp 0x14040af73
lea rcx, [rsp + 0x420]
mov qword [rcx - 0x388], rcx
jmp 0x14040b863
cmp qword [r13], 0
je 0x14040c054
jmp 0x14040c057
xor r13d, r13d
jmp 0x14040bbdd
mov r9, qword [rsp + 0x320]
jmp 0x14040df38
mov r9, qword [rsp + 0x320]
jmp 0x14040d5dc
mov r9, qword [rsp + 0x320]
jmp 0x14040e87f
cmp qword [rsp + 0x50], 0
je 0x14040fc18
mov rcx, r14
dec rcx
not rcx
mov r14, qword [rsp + 0x48]
and r14, rcx
mov qword [rsp + 0x48], r14
mov qword [rsp + r9*8 + 0x410], r14
jmp 0x14040fc20
mov qword [rsp + r9*8 + 0x410], rcx
cmp qword [rsp + 0x48], 0
jne 0x14040f474
mov rcx, qword [rsp + 0xe8]
dec rcx
cmp qword [rsp + rcx*8 + 0x410], 0
je 0x14040fc34
mov qword [rsp + 0xe8], rcx
jmp 0x14040f474
mov r11, rbx
and r11, 8
jmp 0x14040f557
xor edx, edx
jmp 0x14040ec1f
mov rcx, qword [rsp + 0x30]
cmp qword [rcx], 0
je 0x14040e7bd
jmp 0x14040e7c0
mov qword [rsp + 0x28], 0
jmp 0x14040e2b7
mov rcx, qword [rsp + 0x20]
cmp qword [rcx], 0
je 0x14040de76
jmp 0x14040de79
mov qword [rsp + 0x20], 0
jmp 0x14040d949
cmp qword [rcx], 0
je 0x14040d51a
jmp 0x14040d51d
mov qword [rsp + 0x28], 0
jmp 0x14040cff7
mov r9, qword [rsp + 0x318]
jmp 0x14040cc52
mov rcx, qword [0x1405a07c8]
mov r10d, 2
mov r9, qword [0x1405a07c0]
movsx r11, word [0x1405a0942]
mov qword [rsp + 0x318], rcx
mov qword [rsp + 0x320], r9
jmp 0x14040d5dc
mov r11, r9
lea rcx, [0x140000000]
neg r11
mov r10, r11
shr r10, 3
movsxd r10, r10d
movzx ecx, word [rcx + r10*2 + 0x5a06e0]
mov r14d, ecx
shr r14d, 5
cmp r14, r11
jge 0x14040fd44
lea rcx, [0x140000000]
movzx ecx, word [rcx + r10*2 + 0x5a06e2]
mov r14d, ecx
shr r14d, 5
lea r10, [0x140000000]
and ecx, 0x1f
add r9, r14
mov r14, r10
movsxd r9, r9d
movsx r11, word [r10 + rcx*2 + 0x5a0926]
shl rcx, 4
mov qword [rsp + 0x78], r11
mov r15, qword [r14 + rcx + 0x5a0648]
mov rcx, qword [r10 + rcx + 0x5a0640]
mov qword [rsp + 0x218], r15
mov qword [rsp + 0x220], rcx
jmp 0x14040cba5
cmp qword [r8], 0
je 0x14040c943
jmp 0x14040c946
xor r13d, r13d
jmp 0x14040c4f0
mov qword [rsp + 0x20], 0
jmp 0x14040b67c
mov rcx, qword [rsp + 0x68]
lea r8, [rsp + rcx*8 + 0x118]
mov r10, qword [r8]
jmp 0x14040b3d7
cmp dword [rsp + 0x20], 0x20
je 0x14040a7c7
jmp 0x14040a7d3
cmp edi, 0x20
je 0x14040a780
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
jmp 0x14040a7d3
cmp edi, 0x20
je 0x14040a75c
mov r13, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov esi, dword [rsp + 0xf8]
jmp 0x14040a7d3
xor eax, eax
test r15d, r15d
ja 0x14040a7af
mov rbp, r10
jmp 0x14040a7df
mov ebx, 0x6000000
jmp 0x14040f69b