180107e57:	89 44 24 38          	mov    %eax,0x38(%rsp)
180107e5b:	48 85 ff             	test   %rdi,%rdi
180107e5e:	0f 84 a9 02 00 00    	je     0x18010810d
180107e64:	83 7f 04 00          	cmpl   $0x0,0x4(%rdi)
180107e68:	0f 84 9f 02 00 00    	je     0x18010810d
180107e6e:	83 3f 00             	cmpl   $0x0,(%rdi)
180107e71:	0f 84 96 02 00 00    	je     0x18010810d
180107e77:	39 77 08             	cmp    %esi,0x8(%rdi)
180107e7a:	0f 85 8d 02 00 00    	jne    0x18010810d
180107e80:	4d 85 ff             	test   %r15,%r15
180107e83:	0f 84 84 02 00 00    	je     0x18010810d
180107e89:	f6 05 a0 db 08 00 02 	testb  $0x2,0x8dba0(%rip)        # 0x180195a30
180107e90:	75 0a                	jne    0x180107e9c
180107e92:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
180107e97:	e9 76 02 00 00       	jmp    0x180108112
180107e9c:	48 8d 44 24 40       	lea    0x40(%rsp),%rax
180107ea1:	48 8b cf             	mov    %rdi,%rcx
180107ea4:	4c 8d 4d 97          	lea    -0x69(%rbp),%r9
180107ea8:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180107ead:	4c 8d 44 24 30       	lea    0x30(%rsp),%r8
180107eb2:	e8 71 02 00 00       	call   0x180108128
180107eb7:	85 c0                	test   %eax,%eax
180107eb9:	0f 88 53 02 00 00    	js     0x180108112
180107ebf:	80 3d fa da 08 00 00 	cmpb   $0x0,0x8dafa(%rip)        # 0x1801959c0
180107ec6:	0f 85 bd 00 00 00    	jne    0x180107f89
180107ecc:	8b 07                	mov    (%rdi),%eax
180107ece:	33 f6                	xor    %esi,%esi
180107ed0:	89 44 24 48          	mov    %eax,0x48(%rsp)
180107ed4:	8b 47 04             	mov    0x4(%rdi),%eax
180107ed7:	89 44 24 4c          	mov    %eax,0x4c(%rsp)
180107edb:	8b 05 4f db 08 00    	mov    0x8db4f(%rip),%eax        # 0x180195a30
180107ee1:	48 89 75 67          	mov    %rsi,0x67(%rbp)
180107ee5:	a8 08                	test   $0x8,%al
180107ee7:	74 4a                	je     0x180107f33
180107ee9:	a9 00 0c 00 00       	test   $0xc00,%eax
180107eee:	74 0d                	je     0x180107efd
180107ef0:	48 8d 45 c7          	lea    -0x39(%rbp),%rax
180107ef4:	44 8b cb             	mov    %ebx,%r9d
180107ef7:	48 89 45 67          	mov    %rax,0x67(%rbp)
180107efb:	eb 03                	jmp    0x180107f00
180107efd:	45 33 c9             	xor    %r9d,%r9d
180107f00:	4c 8d 45 67          	lea    0x67(%rbp),%r8
180107f04:	ba 04 00 00 00       	mov    $0x4,%edx
180107f09:	48 8b cf             	mov    %rdi,%rcx
180107f0c:	e8 9f fc ff ff       	call   0x180107bb0
180107f11:	85 c0                	test   %eax,%eax
180107f13:	0f 88 f9 01 00 00    	js     0x180108112
180107f19:	48 8b 75 67          	mov    0x67(%rbp),%rsi
180107f1d:	8b 46 0c             	mov    0xc(%rsi),%eax
180107f20:	89 44 24 54          	mov    %eax,0x54(%rsp)
180107f24:	48 8b 46 18          	mov    0x18(%rsi),%rax
180107f28:	48 89 44 24 58       	mov    %rax,0x58(%rsp)
180107f2d:	89 5c 24 50          	mov    %ebx,0x50(%rsp)
180107f31:	eb 1a                	jmp    0x180107f4d
180107f33:	8b 47 0c             	mov    0xc(%rdi),%eax
180107f36:	89 44 24 54          	mov    %eax,0x54(%rsp)
180107f3a:	48 8b 47 18          	mov    0x18(%rdi),%rax
180107f3e:	48 89 44 24 58       	mov    %rax,0x58(%rsp)
180107f43:	8b 05 87 da 08 00    	mov    0x8da87(%rip),%eax        # 0x1801959d0
180107f49:	89 44 24 50          	mov    %eax,0x50(%rsp)
180107f4d:	48 8b 05 8c da 08 00 	mov    0x8da8c(%rip),%rax        # 0x1801959e0
180107f54:	48 8d 4c 24 48       	lea    0x48(%rsp),%rcx
180107f59:	45 33 c0             	xor    %r8d,%r8d
180107f5c:	49 8b d7             	mov    %r15,%rdx
180107f5f:	ff d0                	call   *%rax
180107f61:	0f 1f 00             	nopl   (%rax)
180107f64:	8b d8                	mov    %eax,%ebx
180107f66:	48 85 f6             	test   %rsi,%rsi
180107f69:	74 11                	je     0x180107f7c
180107f6b:	48 8d 45 c7          	lea    -0x39(%rbp),%rax
180107f6f:	48 3b f0             	cmp    %rax,%rsi
180107f72:	74 08                	je     0x180107f7c
180107f74:	48 8b ce             	mov    %rsi,%rcx
180107f77:	e8 c4 fb ff ff       	call   0x180107b40
180107f7c:	85 db                	test   %ebx,%ebx
180107f7e:	0f 88 6b 01 00 00    	js     0x1801080ef
180107f84:	e9 64 01 00 00       	jmp    0x1801080ed
180107f89:	45 8b 77 04          	mov    0x4(%r15),%r14d
180107f8d:	44 0f b6 0d 2d da 08 	movzbl 0x8da2d(%rip),%r9d        # 0x1801959c2
180107f94:	00
180107f95:	44 8b 5c 24 38       	mov    0x38(%rsp),%r11d
180107f9a:	41 8b c9             	mov    %r9d,%ecx
180107f9d:	44 8b 55 97          	mov    -0x69(%rbp),%r10d
180107fa1:	4c 8b 67 18          	mov    0x18(%rdi),%r12
180107fa5:	45 0f af f3          	imul   %r11d,%r14d
180107fa9:	c1 ee 03             	shr    $0x3,%esi
180107fac:	44 0f af d6          	imul   %esi,%r10d
180107fb0:	45 03 37             	add    (%r15),%r14d
180107fb3:	44 0f af f6          	imul   %esi,%r14d
180107fb7:	44 89 55 77          	mov    %r10d,0x77(%rbp)
180107fbb:	4c 03 35 1e da 08 00 	add    0x8da1e(%rip),%r14        # 0x1801959e0
180107fc2:	45 84 c9             	test   %r9b,%r9b
180107fc5:	74 21                	je     0x180107fe8
180107fc7:	2b cb                	sub    %ebx,%ecx
180107fc9:	74 12                	je     0x180107fdd
180107fcb:	2b cb                	sub    %ebx,%ecx
180107fcd:	74 19                	je     0x180107fe8
180107fcf:	3b cb                	cmp    %ebx,%ecx
180107fd1:	74 0a                	je     0x180107fdd
180107fd3:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
180107fd8:	e9 12 01 00 00       	jmp    0x1801080ef
180107fdd:	8b 07                	mov    (%rdi),%eax
180107fdf:	8b c8                	mov    %eax,%ecx
180107fe1:	8b 5f 04             	mov    0x4(%rdi),%ebx
180107fe4:	8b d3                	mov    %ebx,%edx
180107fe6:	eb 09                	jmp    0x180107ff1
180107fe8:	8b 57 04             	mov    0x4(%rdi),%edx
180107feb:	8b ca                	mov    %edx,%ecx
180107fed:	8b 1f                	mov    (%rdi),%ebx
180107fef:	8b c3                	mov    %ebx,%eax
180107ff1:	45 8b c3             	mov    %r11d,%r8d
180107ff4:	0f af ce             	imul   %esi,%ecx
180107ff7:	44 0f af c6          	imul   %esi,%r8d
180107ffb:	45 84 c9             	test   %r9b,%r9b
180107ffe:	75 35                	jne    0x180108035
180108000:	85 db                	test   %ebx,%ebx
180108002:	0f 84 e5 00 00 00    	je     0x1801080ed
180108008:	41 8b c0             	mov    %r8d,%eax
18010800b:	44 8b f8             	mov    %eax,%r15d
18010800e:	8b f1                	mov    %ecx,%esi
180108010:	45 8b ea             	mov    %r10d,%r13d
180108013:	4c 8b c6             	mov    %rsi,%r8
180108016:	49 8b d4             	mov    %r12,%rdx
180108019:	49 8b ce             	mov    %r14,%rcx
18010801c:	e8 9f d9 02 00       	call   0x1801359c0
180108021:	4d 03 e5             	add    %r13,%r12
180108024:	4d 03 f7             	add    %r15,%r14
180108027:	83 c3 ff             	add    $0xffffffff,%ebx
18010802a:	75 e7                	jne    0x180108013
18010802c:	4c 8b 7d 6f          	mov    0x6f(%rbp),%r15
180108030:	e9 b8 00 00 00       	jmp    0x1801080ed
180108035:	45 33 f6             	xor    %r14d,%r14d
180108038:	89 55 87             	mov    %edx,-0x79(%rbp)
18010803b:	89 45 8b             	mov    %eax,-0x75(%rbp)
18010803e:	44 89 b5 83 00 00 00 	mov    %r14d,0x83(%rbp)
180108045:	85 c0                	test   %eax,%eax
180108047:	0f 84 a0 00 00 00    	je     0x1801080ed
18010804d:	45 8b e6             	mov    %r14d,%r12d
180108050:	45 33 ed             	xor    %r13d,%r13d
180108053:	45 0f af e2          	imul   %r10d,%r12d
180108057:	44 89 6d 7f          	mov    %r13d,0x7f(%rbp)
18010805b:	4c 03 67 18          	add    0x18(%rdi),%r12
18010805f:	44 39 6f 04          	cmp    %r13d,0x4(%rdi)
180108063:	76 75                	jbe    0x1801080da
180108065:	f2 0f 10 44 24 30    	movsd  0x30(%rsp),%xmm0
18010806b:	8b 45 8f             	mov    -0x71(%rbp),%eax
18010806e:	f2 0f 11 45 a7       	movsd  %xmm0,-0x59(%rbp)
180108073:	f2 0f 10 45 87       	movsd  -0x79(%rbp),%xmm0
180108078:	f2 0f 11 45 b7       	movsd  %xmm0,-0x49(%rbp)
18010807d:	44 89 5d af          	mov    %r11d,-0x51(%rbp)
180108081:	89 45 bf             	mov    %eax,-0x41(%rbp)
180108084:	48 8b 4d 7f          	mov    0x7f(%rbp),%rcx
180108088:	48 8d 45 67          	lea    0x67(%rbp),%rax
18010808c:	4c 8d 4d a7          	lea    -0x59(%rbp),%r9
180108090:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180108095:	4d 8b c7             	mov    %r15,%r8
180108098:	48 8d 55 b7          	lea    -0x49(%rbp),%rdx
18010809c:	e8 1b 02 00 00       	call   0x1801082bc
1801080a1:	8b d8                	mov    %eax,%ebx
1801080a3:	85 c0                	test   %eax,%eax
1801080a5:	78 48                	js     0x1801080ef
1801080a7:	8b 4d 67             	mov    0x67(%rbp),%ecx
1801080aa:	49 8b d4             	mov    %r12,%rdx
1801080ad:	0f af ce             	imul   %esi,%ecx
1801080b0:	44 8b c6             	mov    %esi,%r8d
1801080b3:	8b de                	mov    %esi,%ebx
1801080b5:	48 03 0d 24 d9 08 00 	add    0x8d924(%rip),%rcx        # 0x1801959e0
1801080bc:	e8 ff d8 02 00       	call   0x1801359c0
1801080c1:	41 ff c5             	inc    %r13d
1801080c4:	4c 03 e3             	add    %rbx,%r12
1801080c7:	44 89 6d 7f          	mov    %r13d,0x7f(%rbp)
1801080cb:	44 3b 6f 04          	cmp    0x4(%rdi),%r13d
1801080cf:	72 b3                	jb     0x180108084
1801080d1:	44 8b 55 77          	mov    0x77(%rbp),%r10d
1801080d5:	44 8b 5c 24 38       	mov    0x38(%rsp),%r11d
1801080da:	41 ff c6             	inc    %r14d
1801080dd:	44 89 b5 83 00 00 00 	mov    %r14d,0x83(%rbp)
1801080e4:	44 3b 37             	cmp    (%rdi),%r14d
1801080e7:	0f 82 60 ff ff ff    	jb     0x18010804d
1801080ed:	33 db                	xor    %ebx,%ebx
1801080ef:	8b 45 9b             	mov    -0x65(%rbp),%eax
1801080f2:	89 07                	mov    %eax,(%rdi)
1801080f4:	8b 45 97             	mov    -0x69(%rbp),%eax
1801080f7:	89 47 04             	mov    %eax,0x4(%rdi)
1801080fa:	8b 44 24 40          	mov    0x40(%rsp),%eax
1801080fe:	41 89 07             	mov    %eax,(%r15)
180108101:	8b 44 24 44          	mov    0x44(%rsp),%eax
180108105:	41 89 47 04          	mov    %eax,0x4(%r15)
180108109:	8b c3                	mov    %ebx,%eax
18010810b:	eb 05                	jmp    0x180108112
18010810d:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180108112:	48 81 c4 f8 00 00 00 	add    $0xf8,%rsp
180108119:	41 5f                	pop    %r15
18010811b:	41 5e                	pop    %r14
18010811d:	41 5d                	pop    %r13
18010811f:	41 5c                	pop    %r12
180108121:	5f                   	pop    %rdi
180108122:	5e                   	pop    %rsi
180108123:	5b                   	pop    %rbx
180108124:	5d                   	pop    %rbp
180108125:	c3                   	ret
180108126:	cc                   	int3
180108127:	cc                   	int3
180108128:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
18010812d:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
180108132:	55                   	push   %rbp
180108133:	56                   	push   %rsi
180108134:	57                   	push   %rdi
180108135:	41 54                	push   %r12
180108137:	41 55                	push   %r13
180108139:	41 56                	push   %r14
18010813b:	41 57                	push   %r15
18010813d:	48 8b ec             	mov    %rsp,%rbp
180108140:	48 83 ec 10          	sub    $0x10,%rsp
180108144:	48 8b 02             	mov    (%rdx),%rax
180108147:	49 8b f8             	mov    %r8,%rdi
18010814a:	f2 41 0f 10 00       	movsd  (%r8),%xmm0
18010814f:	4c 8b d2             	mov    %rdx,%r10
180108152:	44 8b 21             	mov    (%rcx),%r12d
180108155:	4d 8b e9             	mov    %r9,%r13
180108158:	44 8b 79 04          	mov    0x4(%rcx),%r15d
18010815c:	8b d0                	mov    %eax,%edx
18010815e:	41 8b 48 08          	mov    0x8(%r8),%ecx
180108162:	45 33 c0             	xor    %r8d,%r8d
180108165:	44 8b 37             	mov    (%rdi),%r14d
180108168:	8a 1d 54 d8 08 00    	mov    0x8d854(%rip),%bl        # 0x1801959c2
18010816e:	48 89 45 48          	mov    %rax,0x48(%rbp)
180108172:	f2 0f 11 45 f0       	movsd  %xmm0,-0x10(%rbp)
180108177:	89 4d 68             	mov    %ecx,0x68(%rbp)
18010817a:	44 3b f0             	cmp    %eax,%r14d
18010817d:	0f 82 18 01 00 00    	jb     0x18010829b
180108183:	8b 77 04             	mov    0x4(%rdi),%esi
180108186:	48 c1 e8 20          	shr    $0x20,%rax
18010818a:	3b f0                	cmp    %eax,%esi
18010818c:	0f 82 09 01 00 00    	jb     0x18010829b
180108192:	44 8b 5d f0          	mov    -0x10(%rbp),%r11d
180108196:	b1 02                	mov    $0x2,%cl
180108198:	4c 8b 4d f0          	mov    -0x10(%rbp),%r9
18010819c:	44 2b da             	sub    %edx,%r11d
18010819f:	45 3b fb             	cmp    %r11d,%r15d
1801081a2:	45 0f 46 df          	cmovbe %r15d,%r11d
1801081a6:	49 c1 e9 20          	shr    $0x20,%r9
1801081aa:	44 2b c8             	sub    %eax,%r9d
1801081ad:	8a c3                	mov    %bl,%al
1801081af:	45 3b e1             	cmp    %r9d,%r12d
1801081b2:	45 0f 46 cc          	cmovbe %r12d,%r9d
1801081b6:	2a c1                	sub    %cl,%al
1801081b8:	3c 01                	cmp    $0x1,%al
1801081ba:	77 42                	ja     0x1801081fe
1801081bc:	44 38 05 fd d7 08 00 	cmp    %r8b,0x8d7fd(%rip)        # 0x1801959c0
1801081c3:	74 39                	je     0x1801081fe
1801081c5:	45 3b df             	cmp    %r15d,%r11d
1801081c8:	73 0c                	jae    0x1801081d6
1801081ca:	3a d9                	cmp    %cl,%bl
1801081cc:	75 08                	jne    0x1801081d6
1801081ce:	41 8b d0             	mov    %r8d,%edx
1801081d1:	89 55 48             	mov    %edx,0x48(%rbp)
1801081d4:	eb 0d                	jmp    0x1801081e3
1801081d6:	41 8b c6             	mov    %r14d,%eax
1801081d9:	41 2b c3             	sub    %r11d,%eax
1801081dc:	2b c2                	sub    %edx,%eax
1801081de:	8b d0                	mov    %eax,%edx
1801081e0:	89 45 48             	mov    %eax,0x48(%rbp)
1801081e3:	45 3b cc             	cmp    %r12d,%r9d
1801081e6:	73 09                	jae    0x1801081f1
1801081e8:	3a d9                	cmp    %cl,%bl
1801081ea:	75 05                	jne    0x1801081f1
1801081ec:	41 8b c8             	mov    %r8d,%ecx
1801081ef:	eb 5e                	jmp    0x18010824f
1801081f1:	8b ce                	mov    %esi,%ecx
1801081f3:	41 2b c9             	sub    %r9d,%ecx
1801081f6:	2b 4d 4c             	sub    0x4c(%rbp),%ecx
1801081f9:	89 4d 4c             	mov    %ecx,0x4c(%rbp)
1801081fc:	eb 03                	jmp    0x180108201
1801081fe:	8b 4d 4c             	mov    0x4c(%rbp),%ecx
180108201:	8d 43 ff             	lea    -0x1(%rbx),%eax
180108204:	a8 fd                	test   $0xfd,%al
180108206:	75 4a                	jne    0x180108252
180108208:	44 38 05 b1 d7 08 00 	cmp    %r8b,0x8d7b1(%rip)        # 0x1801959c0
18010820f:	74 41                	je     0x180108252
180108211:	44 89 75 f4          	mov    %r14d,-0xc(%rbp)
180108215:	89 75 f0             	mov    %esi,-0x10(%rbp)
180108218:	80 fb 01             	cmp    $0x1,%bl
18010821b:	75 19                	jne    0x180108236
18010821d:	45 3b df             	cmp    %r15d,%r11d
180108220:	73 05                	jae    0x180108227
180108222:	41 8b c8             	mov    %r8d,%ecx
180108225:	eb 09                	jmp    0x180108230
180108227:	41 8b ce             	mov    %r14d,%ecx
18010822a:	41 2b 0a             	sub    (%r10),%ecx
18010822d:	41 2b cb             	sub    %r11d,%ecx
180108230:	41 8b 52 04          	mov    0x4(%r10),%edx
180108234:	eb 16                	jmp    0x18010824c
180108236:	45 3b cc             	cmp    %r12d,%r9d
180108239:	73 05                	jae    0x180108240
18010823b:	41 8b d0             	mov    %r8d,%edx
18010823e:	eb 09                	jmp    0x180108249
180108240:	8b d6                	mov    %esi,%edx
180108242:	41 2b 52 04          	sub    0x4(%r10),%edx
180108246:	41 2b d1             	sub    %r9d,%edx
180108249:	41 8b 0a             	mov    (%r10),%ecx
18010824c:	89 55 48             	mov    %edx,0x48(%rbp)
18010824f:	89 4d 4c             	mov    %ecx,0x4c(%rbp)
180108252:	39 55 f0             	cmp    %edx,-0x10(%rbp)
180108255:	72 44                	jb     0x18010829b
180108257:	39 4d f4             	cmp    %ecx,-0xc(%rbp)
18010825a:	72 3f                	jb     0x18010829b
18010825c:	4d 85 ed             	test   %r13,%r13
18010825f:	74 08                	je     0x180108269
180108261:	45 89 65 04          	mov    %r12d,0x4(%r13)
180108265:	45 89 7d 00          	mov    %r15d,0x0(%r13)
180108269:	48 8b 45 60          	mov    0x60(%rbp),%rax
18010826d:	48 85 c0             	test   %rax,%rax
180108270:	74 06                	je     0x180108278
180108272:	49 8b 0a             	mov    (%r10),%rcx
180108275:	48 89 08             	mov    %rcx,(%rax)
180108278:	8b 45 68             	mov    0x68(%rbp),%eax
18010827b:	f2 0f 10 45 f0       	movsd  -0x10(%rbp),%xmm0
180108280:	f2 0f 11 07          	movsd  %xmm0,(%rdi)
180108284:	89 47 08             	mov    %eax,0x8(%rdi)
180108287:	48 8b 45 48          	mov    0x48(%rbp),%rax
18010828b:	49 89 02             	mov    %rax,(%r10)
18010828e:	48 8b 45 40          	mov    0x40(%rbp),%rax
180108292:	44 89 08             	mov    %r9d,(%rax)
180108295:	44 89 58 04          	mov    %r11d,0x4(%rax)
180108299:	eb 06                	jmp    0x1801082a1
18010829b:	41 b8 0d 00 00 c0    	mov    $0xc000000d,%r8d
1801082a1:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
1801082a6:	41 8b c0             	mov    %r8d,%eax
1801082a9:	48 83 c4 10          	add    $0x10,%rsp
1801082ad:	41 5f                	pop    %r15
1801082af:	41 5e                	pop    %r14
1801082b1:	41 5d                	pop    %r13
1801082b3:	41 5c                	pop    %r12
1801082b5:	5f                   	pop    %rdi
1801082b6:	5e                   	pop    %rsi
1801082b7:	5d                   	pop    %rbp
1801082b8:	c3                   	ret
1801082b9:	cc                   	int3
1801082ba:	cc                   	int3
1801082bb:	cc                   	int3
1801082bc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1801082c1:	44 0f b6 15 f9 d6 08 	movzbl 0x8d6f9(%rip),%r10d        # 0x1801959c2
1801082c8:	00
1801082c9:	45 33 db             	xor    %r11d,%r11d
1801082cc:	49 8b d8             	mov    %r8,%rbx
1801082cf:	45 85 d2             	test   %r10d,%r10d
1801082d2:	74 50                	je     0x180108324
1801082d4:	41 83 ea 01          	sub    $0x1,%r10d
1801082d8:	74 3b                	je     0x180108315