180109f24:	89 43 34             	mov    %eax,0x34(%rbx)
180109f27:	89 43 38             	mov    %eax,0x38(%rbx)
180109f2a:	48 89 73 10          	mov    %rsi,0x10(%rbx)
180109f2e:	48 89 53 3e          	mov    %rdx,0x3e(%rbx)
180109f32:	48 8b 43 10          	mov    0x10(%rbx),%rax
180109f36:	33 d2                	xor    %edx,%edx
180109f38:	48 0f bf 4f 56       	movswq 0x56(%rdi),%rcx
180109f3d:	44 8b 4b 2c          	mov    0x2c(%rbx),%r9d
180109f41:	48 89 85 87 00 00 00 	mov    %rax,0x87(%rbp)
180109f48:	8b 00                	mov    (%rax),%eax
180109f4a:	f7 73 38             	divl   0x38(%rbx)
180109f4d:	49 8b 55 08          	mov    0x8(%r13),%rdx
180109f51:	44 8b d0             	mov    %eax,%r10d
180109f54:	44 89 4d 5f          	mov    %r9d,0x5f(%rbp)
180109f58:	8b 42 60             	mov    0x60(%rdx),%eax
180109f5b:	48 0f af c1          	imul   %rcx,%rax
180109f5f:	41 8b 4d 10          	mov    0x10(%r13),%ecx
180109f63:	48 0f af c1          	imul   %rcx,%rax
180109f67:	0f b7 4a 78          	movzwl 0x78(%rdx),%ecx
180109f6b:	48 c1 e0 06          	shl    $0x6,%rax
180109f6f:	48 99                	cqto
180109f71:	4c 8d 04 c9          	lea    (%rcx,%rcx,8),%r8
180109f75:	49 c1 e0 03          	shl    $0x3,%r8
180109f79:	49 f7 f8             	idiv   %r8
180109f7c:	8b c8                	mov    %eax,%ecx
180109f7e:	c1 f9 06             	sar    $0x6,%ecx
180109f81:	85 c0                	test   %eax,%eax
180109f83:	79 08                	jns    0x180109f8d
180109f85:	81 c9 00 00 00 fc    	or     $0xfc000000,%ecx
180109f8b:	eb 07                	jmp    0x180109f94
180109f8d:	a8 3f                	test   $0x3f,%al
180109f8f:	74 03                	je     0x180109f94
180109f91:	41 03 cb             	add    %r11d,%ecx
180109f94:	44 8b 6d 6f          	mov    0x6f(%rbp),%r13d
180109f98:	8b 43 30             	mov    0x30(%rbx),%eax
180109f9b:	44 03 e9             	add    %ecx,%r13d
180109f9e:	85 c0                	test   %eax,%eax
180109fa0:	78 0a                	js     0x180109fac
180109fa2:	41 3b c5             	cmp    %r13d,%eax
180109fa5:	76 05                	jbe    0x180109fac
180109fa7:	45 33 ed             	xor    %r13d,%r13d
180109faa:	eb 03                	jmp    0x180109faf
180109fac:	44 2b e8             	sub    %eax,%r13d
180109faf:	48 8b 4d 4f          	mov    0x4f(%rbp),%rcx
180109fb3:	43 8d 04 2a          	lea    (%r10,%r13,1),%eax
180109fb7:	39 01                	cmp    %eax,(%rcx)
180109fb9:	0f 82 b8 00 00 00    	jb     0x18010a077
180109fbf:	8b 45 67             	mov    0x67(%rbp),%eax
180109fc2:	41 03 c1             	add    %r9d,%eax
180109fc5:	39 41 04             	cmp    %eax,0x4(%rcx)
180109fc8:	0f 82 a9 00 00 00    	jb     0x18010a077
180109fce:	44 89 4d 87          	mov    %r9d,-0x79(%rbp)
180109fd2:	4c 8d 44 24 50       	lea    0x50(%rsp),%r8
180109fd7:	44 89 4d 8f          	mov    %r9d,-0x71(%rbp)
180109fdb:	48 8d 4d 87          	lea    -0x79(%rbp),%rcx
180109fdf:	4c 8d 4d 97          	lea    -0x69(%rbp),%r9
180109fe3:	44 89 55 8b          	mov    %r10d,-0x75(%rbp)
180109fe7:	ba 20 00 00 00       	mov    $0x20,%edx
180109fec:	e8 93 26 00 00       	call   0x18010c684
180109ff1:	4c 8b 64 24 50       	mov    0x50(%rsp),%r12
180109ff6:	8b f8                	mov    %eax,%edi
180109ff8:	85 c0                	test   %eax,%eax
180109ffa:	0f 88 80 00 00 00    	js     0x18010a080
18010a000:	48 8b 45 57          	mov    0x57(%rbp),%rax
18010a004:	49 8b d4             	mov    %r12,%rdx
18010a007:	44 8b 4b 38          	mov    0x38(%rbx),%r9d
18010a00b:	44 8b 43 34          	mov    0x34(%rbx),%r8d
18010a00f:	48 8b 8d 87 00 00 00 	mov    0x87(%rbp),%rcx
18010a016:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
18010a01b:	e8 d0 00 00 00       	call   0x18010a0f0
18010a020:	8b 45 67             	mov    0x67(%rbp),%eax
18010a023:	4c 8d 8d 87 00 00 00 	lea    0x87(%rbp),%r9
18010a02a:	48 8b 4d 4f          	mov    0x4f(%rbp),%rcx
18010a02e:	4c 8d 85 8f 00 00 00 	lea    0x8f(%rbp),%r8
18010a035:	83 a5 87 00 00 00 00 	andl   $0x0,0x87(%rbp)
18010a03c:	49 8b d4             	mov    %r12,%rdx
18010a03f:	83 a5 8b 00 00 00 00 	andl   $0x0,0x8b(%rbp)
18010a046:	89 85 8f 00 00 00    	mov    %eax,0x8f(%rbp)
18010a04c:	44 89 ad 93 00 00 00 	mov    %r13d,0x93(%rbp)
18010a053:	e8 2c d6 ff ff       	call   0x180107684
18010a058:	48 8b 4d 7f          	mov    0x7f(%rbp),%rcx
18010a05c:	8b 45 5f             	mov    0x5f(%rbp),%eax
18010a05f:	89 01                	mov    %eax,(%rcx)
18010a061:	45 84 ff             	test   %r15b,%r15b
18010a064:	74 16                	je     0x18010a07c
18010a066:	48 8b d3             	mov    %rbx,%rdx
18010a069:	48 8d 0d d0 b8 08 00 	lea    0x8b8d0(%rip),%rcx        # 0x180195940
18010a070:	e8 13 23 00 00       	call   0x18010c388
18010a075:	eb 05                	jmp    0x18010a07c
18010a077:	bf 05 00 00 80       	mov    $0x80000005,%edi
18010a07c:	85 ff                	test   %edi,%edi
18010a07e:	79 1b                	jns    0x18010a09b
18010a080:	45 84 ff             	test   %r15b,%r15b
18010a083:	74 1b                	je     0x18010a0a0
18010a085:	48 85 db             	test   %rbx,%rbx
18010a088:	74 11                	je     0x18010a09b
18010a08a:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
18010a08e:	e8 69 ff f8 ff       	call   0x180099ffc
18010a093:	48 8b cb             	mov    %rbx,%rcx
18010a096:	e8 61 ff f8 ff       	call   0x180099ffc
18010a09b:	45 84 ff             	test   %r15b,%r15b
18010a09e:	75 05                	jne    0x18010a0a5
18010a0a0:	45 85 f6             	test   %r14d,%r14d
18010a0a3:	74 09                	je     0x18010a0ae
18010a0a5:	85 ff                	test   %edi,%edi
18010a0a7:	79 19                	jns    0x18010a0c2
18010a0a9:	48 85 db             	test   %rbx,%rbx
18010a0ac:	75 14                	jne    0x18010a0c2
18010a0ae:	48 85 f6             	test   %rsi,%rsi
18010a0b1:	74 0f                	je     0x18010a0c2
18010a0b3:	48 83 7d 97 00       	cmpq   $0x0,-0x69(%rbp)
18010a0b8:	75 08                	jne    0x18010a0c2
18010a0ba:	48 8b ce             	mov    %rsi,%rcx
18010a0bd:	e8 3a ff f8 ff       	call   0x180099ffc
18010a0c2:	4d 85 e4             	test   %r12,%r12
18010a0c5:	74 0f                	je     0x18010a0d6
18010a0c7:	48 83 7d 97 00       	cmpq   $0x0,-0x69(%rbp)
18010a0cc:	75 08                	jne    0x18010a0d6
18010a0ce:	49 8b cc             	mov    %r12,%rcx
18010a0d1:	e8 26 ff f8 ff       	call   0x180099ffc
18010a0d6:	8b c7                	mov    %edi,%eax
18010a0d8:	48 81 c4 d8 00 00 00 	add    $0xd8,%rsp
18010a0df:	41 5f                	pop    %r15
18010a0e1:	41 5e                	pop    %r14
18010a0e3:	41 5d                	pop    %r13
18010a0e5:	41 5c                	pop    %r12
18010a0e7:	5f                   	pop    %rdi
18010a0e8:	5e                   	pop    %rsi
18010a0e9:	5b                   	pop    %rbx
18010a0ea:	5d                   	pop    %rbp
18010a0eb:	c3                   	ret
18010a0ec:	cc                   	int3
18010a0ed:	cc                   	int3
18010a0ee:	cc                   	int3
18010a0ef:	cc                   	int3
18010a0f0:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
18010a0f5:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
18010a0fa:	55                   	push   %rbp
18010a0fb:	56                   	push   %rsi
18010a0fc:	57                   	push   %rdi
18010a0fd:	41 54                	push   %r12
18010a0ff:	41 55                	push   %r13
18010a101:	41 56                	push   %r14
18010a103:	41 57                	push   %r15
18010a105:	48 83 ec 20          	sub    $0x20,%rsp
18010a109:	48 8b 41 18          	mov    0x18(%rcx),%rax
18010a10d:	48 8b f2             	mov    %rdx,%rsi
18010a110:	48 89 44 24 60       	mov    %rax,0x60(%rsp)
18010a115:	45 8b e0             	mov    %r8d,%r12d
18010a118:	48 8b 84 24 80 00 00 	mov    0x80(%rsp),%rax
18010a11f:	00
18010a120:	4c 8b f9             	mov    %rcx,%r15
18010a123:	48 8b ce             	mov    %rsi,%rcx
18010a126:	41 8b e8             	mov    %r8d,%ebp
18010a129:	41 8b d9             	mov    %r9d,%ebx
18010a12c:	45 0f af e1          	imul   %r9d,%r12d
18010a130:	33 ff                	xor    %edi,%edi
18010a132:	8b 10                	mov    (%rax),%edx
18010a134:	e8 c3 d6 ff ff       	call   0x1801077fc
18010a139:	39 3e                	cmp    %edi,(%rsi)
18010a13b:	0f 86 ef 00 00 00    	jbe    0x18010a230
18010a141:	41 8b 47 04          	mov    0x4(%r15),%eax
18010a145:	33 d2                	xor    %edx,%edx
18010a147:	f7 f3                	div    %ebx
18010a149:	44 8b 76 04          	mov    0x4(%rsi),%r14d
18010a14d:	45 33 ed             	xor    %r13d,%r13d
18010a150:	44 0f af f7          	imul   %edi,%r14d
18010a154:	41 c1 e6 02          	shl    $0x2,%r14d
18010a158:	4c 03 76 18          	add    0x18(%rsi),%r14
18010a15c:	85 c0                	test   %eax,%eax
18010a15e:	0f 84 c2 00 00 00    	je     0x18010a226
18010a164:	48 8b b4 24 80 00 00 	mov    0x80(%rsp),%rsi
18010a16b:	00
18010a16c:	45 33 d2             	xor    %r10d,%r10d
18010a16f:	45 33 c9             	xor    %r9d,%r9d
18010a172:	85 db                	test   %ebx,%ebx
18010a174:	74 60                	je     0x18010a1d6
18010a176:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
18010a17b:	85 ed                	test   %ebp,%ebp
18010a17d:	74 47                	je     0x18010a1c6
18010a17f:	44 8b c7             	mov    %edi,%r8d
18010a182:	41 8b c5             	mov    %r13d,%eax
18010a185:	44 0f af c3          	imul   %ebx,%r8d
18010a189:	4c 8b dd             	mov    %rbp,%r11
18010a18c:	0f af c5             	imul   %ebp,%eax
18010a18f:	45 03 c1             	add    %r9d,%r8d
18010a192:	45 0f af 47 04       	imul   0x4(%r15),%r8d
18010a197:	44 03 c0             	add    %eax,%r8d
18010a19a:	41 8b c0             	mov    %r8d,%eax
18010a19d:	ba 80 00 00 00       	mov    $0x80,%edx
18010a1a2:	48 c1 e8 03          	shr    $0x3,%rax
18010a1a6:	41 0f b6 c8          	movzbl %r8b,%ecx
18010a1aa:	83 e1 07             	and    $0x7,%ecx
18010a1ad:	d3 fa                	sar    %cl,%edx
18010a1af:	84 14 30             	test   %dl,(%rax,%rsi,1)
18010a1b2:	41 8d 42 01          	lea    0x1(%r10),%eax
18010a1b6:	41 0f 44 c2          	cmove  %r10d,%eax
18010a1ba:	41 ff c0             	inc    %r8d
18010a1bd:	44 8b d0             	mov    %eax,%r10d
18010a1c0:	49 83 eb 01          	sub    $0x1,%r11
18010a1c4:	75 d4                	jne    0x18010a19a
18010a1c6:	41 ff c1             	inc    %r9d
18010a1c9:	44 3b cb             	cmp    %ebx,%r9d
18010a1cc:	72 ad                	jb     0x18010a17b
18010a1ce:	48 8b b4 24 80 00 00 	mov    0x80(%rsp),%rsi
18010a1d5:	00
18010a1d6:	8b 0e                	mov    (%rsi),%ecx
18010a1d8:	33 d2                	xor    %edx,%edx
18010a1da:	41 69 c2 ff 00 00 00 	imul   $0xff,%r10d,%eax
18010a1e1:	41 f7 f4             	div    %r12d
18010a1e4:	8b 56 04             	mov    0x4(%rsi),%edx
18010a1e7:	44 8b c0             	mov    %eax,%r8d
18010a1ea:	e8 69 d1 ff ff       	call   0x180107358
18010a1ef:	8b c8                	mov    %eax,%ecx
18010a1f1:	41 88 06             	mov    %al,(%r14)
18010a1f4:	c1 e9 10             	shr    $0x10,%ecx
18010a1f7:	33 d2                	xor    %edx,%edx
18010a1f9:	41 88 4e 02          	mov    %cl,0x2(%r14)
18010a1fd:	41 ff c5             	inc    %r13d
18010a200:	8b c8                	mov    %eax,%ecx
18010a202:	41 c6 46 03 ff       	movb   $0xff,0x3(%r14)
18010a207:	c1 e9 08             	shr    $0x8,%ecx
18010a20a:	41 88 4e 01          	mov    %cl,0x1(%r14)
18010a20e:	49 83 c6 04          	add    $0x4,%r14
18010a212:	41 8b 47 04          	mov    0x4(%r15),%eax
18010a216:	f7 f3                	div    %ebx
18010a218:	44 3b e8             	cmp    %eax,%r13d
18010a21b:	0f 82 4b ff ff ff    	jb     0x18010a16c
18010a221:	48 8b 74 24 68       	mov    0x68(%rsp),%rsi
18010a226:	ff c7                	inc    %edi
18010a228:	3b 3e                	cmp    (%rsi),%edi
18010a22a:	0f 82 19 ff ff ff    	jb     0x18010a149
18010a230:	48 8b 5c 24 70       	mov    0x70(%rsp),%rbx
18010a235:	48 83 c4 20          	add    $0x20,%rsp
18010a239:	41 5f                	pop    %r15
18010a23b:	41 5e                	pop    %r14
18010a23d:	41 5d                	pop    %r13
18010a23f:	41 5c                	pop    %r12
18010a241:	5f                   	pop    %rdi
18010a242:	5e                   	pop    %rsi
18010a243:	5d                   	pop    %rbp
18010a244:	c3                   	ret
18010a245:	cc                   	int3
18010a246:	cc                   	int3
18010a247:	cc                   	int3
18010a248:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18010a24d:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
18010a252:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18010a257:	57                   	push   %rdi
18010a258:	48 83 ec 20          	sub    $0x20,%rsp
18010a25c:	0f b7 41 18          	movzwl 0x18(%rcx),%eax
18010a260:	48 8b f9             	mov    %rcx,%rdi
18010a263:	48 8b f2             	mov    %rdx,%rsi
18010a266:	49 8b d0             	mov    %r8,%rdx
18010a269:	48 6b c8 11          	imul   $0x11,%rax,%rcx
18010a26d:	e8 9e 23 00 00       	call   0x18010c610
18010a272:	33 ed                	xor    %ebp,%ebp
18010a274:	48 8b d8             	mov    %rax,%rbx
18010a277:	48 85 c0             	test   %rax,%rax
18010a27a:	75 07                	jne    0x18010a283
18010a27c:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
18010a281:	eb 5f                	jmp    0x18010a2e2
18010a283:	0f b7 47 18          	movzwl 0x18(%rdi),%eax
18010a287:	33 d2                	xor    %edx,%edx
18010a289:	4c 6b c0 11          	imul   $0x11,%rax,%r8
18010a28d:	48 8b cb             	mov    %rbx,%rcx
18010a290:	e8 eb b9 02 00       	call   0x180135c80
18010a295:	8b d5                	mov    %ebp,%edx
18010a297:	66 3b 6f 18          	cmp    0x18(%rdi),%bp
18010a29b:	73 40                	jae    0x18010a2dd
18010a29d:	48 8b 47 32          	mov    0x32(%rdi),%rax
18010a2a1:	44 8b c2             	mov    %edx,%r8d
18010a2a4:	4d 6b c8 11          	imul   $0x11,%r8,%r9
18010a2a8:	42 8b 0c 80          	mov    (%rax,%r8,4),%ecx
18010a2ac:	41 89 0c 19          	mov    %ecx,(%r9,%rbx,1)
18010a2b0:	48 8b 47 3a          	mov    0x3a(%rdi),%rax
18010a2b4:	42 8b 0c 80          	mov    (%rax,%r8,4),%ecx
18010a2b8:	41 89 4c 19 04       	mov    %ecx,0x4(%r9,%rbx,1)
18010a2bd:	48 8b 47 2a          	mov    0x2a(%rdi),%rax
18010a2c1:	48 85 c0             	test   %rax,%rax
18010a2c4:	74 0d                	je     0x18010a2d3
18010a2c6:	42 f6 04 00 01       	testb  $0x1,(%rax,%r8,1)
18010a2cb:	74 06                	je     0x18010a2d3
18010a2cd:	41 c6 44 19 10 01    	movb   $0x1,0x10(%r9,%rbx,1)
18010a2d3:	0f b7 47 18          	movzwl 0x18(%rdi),%eax
18010a2d7:	ff c2                	inc    %edx
18010a2d9:	3b d0                	cmp    %eax,%edx
18010a2db:	72 c0                	jb     0x18010a29d
18010a2dd:	48 89 1e             	mov    %rbx,(%rsi)
18010a2e0:	33 c0                	xor    %eax,%eax
18010a2e2:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18010a2e7:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
18010a2ec:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
18010a2f1:	48 83 c4 20          	add    $0x20,%rsp
18010a2f5:	5f                   	pop    %rdi
18010a2f6:	c3                   	ret
18010a2f7:	cc                   	int3
18010a2f8:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
18010a2fd:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
18010a302:	53                   	push   %rbx
18010a303:	55                   	push   %rbp
18010a304:	56                   	push   %rsi
18010a305:	57                   	push   %rdi
18010a306:	41 54                	push   %r12
18010a308:	41 55                	push   %r13
18010a30a:	41 56                	push   %r14
18010a30c:	41 57                	push   %r15
18010a30e:	48 83 ec 38          	sub    $0x38,%rsp
18010a312:	48 8b b4 24 a0 00 00 	mov    0xa0(%rsp),%rsi
18010a319:	00
18010a31a:	41 8d 68 fe          	lea    -0x2(%r8),%ebp
18010a31e:	4c 8b 61 1a          	mov    0x1a(%rcx),%r12
18010a322:	33 db                	xor    %ebx,%ebx
18010a324:	89 ac 24 80 00 00 00 	mov    %ebp,0x80(%rsp)
18010a32b:	4d 8b f1             	mov    %r9,%r14
18010a32e:	48 8b fa             	mov    %rdx,%rdi
18010a331:	44 8b d3             	mov    %ebx,%r10d
18010a334:	44 8b eb             	mov    %ebx,%r13d
18010a337:	44 8b c3             	mov    %ebx,%r8d
18010a33a:	85 ed                	test   %ebp,%ebp
18010a33c:	0f 84 be 02 00 00    	je     0x18010a600
18010a342:	4c 8d 4a 10          	lea    0x10(%rdx),%r9
18010a346:	41 8b c2             	mov    %r10d,%eax
18010a349:	45 8d 58 01          	lea    0x1(%r8),%r11d
18010a34d:	41 8b d3             	mov    %r11d,%edx
18010a350:	41 0f b7 0c 44       	movzwl (%r12,%rax,2),%ecx
18010a355:	44 3b c1             	cmp    %ecx,%r8d
18010a358:	75 17                	jne    0x18010a371
18010a35a:	45 85 d2             	test   %r10d,%r10d
18010a35d:	75 04                	jne    0x18010a363
18010a35f:	8b d3                	mov    %ebx,%edx
18010a361:	eb 0b                	jmp    0x18010a36e
18010a363:	41 8d 42 ff          	lea    -0x1(%r10),%eax
18010a367:	41 0f b7 14 44       	movzwl (%r12,%rax,2),%edx
18010a36c:	ff c2                	inc    %edx
18010a36e:	41 ff c2             	inc    %r10d
18010a371:	41 f6 01 01          	testb  $0x1,(%r9)
18010a375:	75 0d                	jne    0x18010a384
18010a377:	8b c2                	mov    %edx,%eax
18010a379:	48 6b c8 11          	imul   $0x11,%rax,%rcx
18010a37d:	f6 44 39 10 01       	testb  $0x1,0x10(%rcx,%rdi,1)
18010a382:	75 03                	jne    0x18010a387
18010a384:	41 ff c5             	inc    %r13d
18010a387:	49 83 c1 11          	add    $0x11,%r9
18010a38b:	45 8b c3             	mov    %r11d,%r8d
18010a38e:	44 3b dd             	cmp    %ebp,%r11d
18010a391:	72 b3                	jb     0x18010a346
18010a393:	45 85 ed             	test   %r13d,%r13d
18010a396:	0f 84 64 02 00 00    	je     0x18010a600
18010a39c:	48 8b 94 24 a8 00 00 	mov    0xa8(%rsp),%rdx