1800a2191:	41 8b 16             	mov    (%r14),%edx
1800a2194:	03 d0                	add    %eax,%edx
1800a2196:	45 89 7e 04          	mov    %r15d,0x4(%r14)
1800a219a:	41 89 16             	mov    %edx,(%r14)
1800a219d:	3b d3                	cmp    %ebx,%edx
1800a219f:	0f 83 e7 03 00 00    	jae    0x1800a258c
1800a21a5:	45 3b f8             	cmp    %r8d,%r15d
1800a21a8:	0f 8f de 03 00 00    	jg     0x1800a258c
1800a21ae:	48 8b 07             	mov    (%rdi),%rax
1800a21b1:	45 8b c7             	mov    %r15d,%r8d
1800a21b4:	48 8b cf             	mov    %rdi,%rcx
1800a21b7:	48 8b 40 58          	mov    0x58(%rax),%rax
1800a21bb:	ff d0                	call   *%rax
1800a21bd:	0f 1f 00             	nopl   (%rax)
1800a21c0:	03 5c 24 20          	add    0x20(%rsp),%ebx
1800a21c4:	8b 4e 38             	mov    0x38(%rsi),%ecx
1800a21c7:	33 d2                	xor    %edx,%edx
1800a21c9:	8b 46 3c             	mov    0x3c(%rsi),%eax
1800a21cc:	83 e9 04             	sub    $0x4,%ecx
1800a21cf:	41 2b 1e             	sub    (%r14),%ebx
1800a21d2:	f7 f1                	div    %ecx
1800a21d4:	33 d2                	xor    %edx,%edx
1800a21d6:	8d 48 01             	lea    0x1(%rax),%ecx
1800a21d9:	8b c3                	mov    %ebx,%eax
1800a21db:	f7 74 24 20          	divl   0x20(%rsp)
1800a21df:	3b c8                	cmp    %eax,%ecx
1800a21e1:	0f 87 a5 03 00 00    	ja     0x1800a258c
1800a21e7:	48 8b 07             	mov    (%rdi),%rax
1800a21ea:	33 db                	xor    %ebx,%ebx
1800a21ec:	48 8b cf             	mov    %rdi,%rcx
1800a21ef:	48 8b 40 48          	mov    0x48(%rax),%rax
1800a21f3:	39 5e 60             	cmp    %ebx,0x60(%rsi)
1800a21f6:	74 34                	je     0x1800a222c
1800a21f8:	0f b7 56 6c          	movzwl 0x6c(%rsi),%edx
1800a21fc:	ff d0                	call   *%rax
1800a21fe:	0f 1f 00             	nopl   (%rax)
1800a2201:	48 8b 07             	mov    (%rdi),%rax
1800a2204:	48 8d 15 c5 03 0b 00 	lea    0xb03c5(%rip),%rdx        # 0x1801525d0
1800a220b:	48 8b cf             	mov    %rdi,%rcx
1800a220e:	48 8b 40 78          	mov    0x78(%rax),%rax
1800a2212:	ff d0                	call   *%rax
1800a2214:	0f 1f 00             	nopl   (%rax)
1800a2217:	48 8b 07             	mov    (%rdi),%rax
1800a221a:	48 8b cf             	mov    %rdi,%rcx
1800a221d:	0f b7 56 6e          	movzwl 0x6e(%rsi),%edx
1800a2221:	48 8b 40 48          	mov    0x48(%rax),%rax
1800a2225:	ff d0                	call   *%rax
1800a2227:	0f 1f 00             	nopl   (%rax)
1800a222a:	eb 1f                	jmp    0x1800a224b
1800a222c:	0f b7 56 6e          	movzwl 0x6e(%rsi),%edx
1800a2230:	ff d0                	call   *%rax
1800a2232:	0f 1f 00             	nopl   (%rax)
1800a2235:	48 8b 07             	mov    (%rdi),%rax
1800a2238:	48 8d 15 89 03 0b 00 	lea    0xb0389(%rip),%rdx        # 0x1801525c8
1800a223f:	48 8b cf             	mov    %rdi,%rcx
1800a2242:	48 8b 40 78          	mov    0x78(%rax),%rax
1800a2246:	ff d0                	call   *%rax
1800a2248:	0f 1f 00             	nopl   (%rax)
1800a224b:	8b 84 24 b8 00 00 00 	mov    0xb8(%rsp),%eax
1800a2252:	41 8b d4             	mov    %r12d,%edx
1800a2255:	44 8b 46 3c          	mov    0x3c(%rsi),%r8d
1800a2259:	2b d0                	sub    %eax,%edx
1800a225b:	44 0f af 44 24 24    	imul   0x24(%rsp),%r8d
1800a2261:	45 33 c9             	xor    %r9d,%r9d
1800a2264:	41 8b 4e 04          	mov    0x4(%r14),%ecx
1800a2268:	41 8b 2e             	mov    (%r14),%ebp
1800a226b:	89 54 24 28          	mov    %edx,0x28(%rsp)
1800a226f:	44 89 44 24 30       	mov    %r8d,0x30(%rsp)
1800a2274:	8d 1c 01             	lea    (%rcx,%rax,1),%ebx
1800a2277:	45 85 c0             	test   %r8d,%r8d
1800a227a:	0f 84 e4 00 00 00    	je     0x1800a2364
1800a2280:	44 8b 74 24 20       	mov    0x20(%rsp),%r14d
1800a2285:	44 8b e0             	mov    %eax,%r12d
1800a2288:	45 8b e9             	mov    %r9d,%r13d
1800a228b:	8b f2                	mov    %edx,%esi
1800a228d:	48 8b 07             	mov    (%rdi),%rax
1800a2290:	ba 20 00 00 00       	mov    $0x20,%edx
1800a2295:	48 8b cf             	mov    %rdi,%rcx
1800a2298:	48 8b 40 28          	mov    0x28(%rax),%rax
1800a229c:	ff d0                	call   *%rax
1800a229e:	0f 1f 00             	nopl   (%rax)
1800a22a1:	44 03 e8             	add    %eax,%r13d
1800a22a4:	ba 20 00 00 00       	mov    $0x20,%edx
1800a22a9:	48 8b 07             	mov    (%rdi),%rax
1800a22ac:	48 8b cf             	mov    %rdi,%rcx
1800a22af:	48 8b 40 28          	mov    0x28(%rax),%rax
1800a22b3:	ff d0                	call   *%rax
1800a22b5:	0f 1f 00             	nopl   (%rax)
1800a22b8:	03 d8                	add    %eax,%ebx
1800a22ba:	3b de                	cmp    %esi,%ebx
1800a22bc:	76 5a                	jbe    0x1800a2318
1800a22be:	48 8b 1f             	mov    (%rdi),%rbx
1800a22c1:	ba 20 00 00 00       	mov    $0x20,%edx
1800a22c6:	48 8b cf             	mov    %rdi,%rcx
1800a22c9:	48 8b 43 28          	mov    0x28(%rbx),%rax
1800a22cd:	ff d0                	call   *%rax
1800a22cf:	0f 1f 00             	nopl   (%rax)
1800a22d2:	44 8b c6             	mov    %esi,%r8d
1800a22d5:	8b d5                	mov    %ebp,%edx
1800a22d7:	44 2b c0             	sub    %eax,%r8d
1800a22da:	48 8b cf             	mov    %rdi,%rcx
1800a22dd:	48 8b 43 58          	mov    0x58(%rbx),%rax
1800a22e1:	ff d0                	call   *%rax
1800a22e3:	0f 1f 00             	nopl   (%rax)
1800a22e6:	48 8b 07             	mov    (%rdi),%rax
1800a22e9:	ba 20 00 00 00       	mov    $0x20,%edx
1800a22ee:	48 8b cf             	mov    %rdi,%rcx
1800a22f1:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
1800a22f8:	ff d0                	call   *%rax
1800a22fa:	0f 1f 00             	nopl   (%rax)
1800a22fd:	48 8b 07             	mov    (%rdi),%rax
1800a2300:	43 8d 1c 3c          	lea    (%r12,%r15,1),%ebx
1800a2304:	41 03 ee             	add    %r14d,%ebp
1800a2307:	44 8b c3             	mov    %ebx,%r8d
1800a230a:	8b d5                	mov    %ebp,%edx
1800a230c:	48 8b cf             	mov    %rdi,%rcx
1800a230f:	48 8b 40 58          	mov    0x58(%rax),%rax
1800a2313:	ff d0                	call   *%rax
1800a2315:	0f 1f 00             	nopl   (%rax)
1800a2318:	48 8b 07             	mov    (%rdi),%rax
1800a231b:	ba 20 00 00 00       	mov    $0x20,%edx
1800a2320:	48 8b cf             	mov    %rdi,%rcx
1800a2323:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
1800a232a:	ff d0                	call   *%rax
1800a232c:	0f 1f 00             	nopl   (%rax)
1800a232f:	44 3b 6c 24 30       	cmp    0x30(%rsp),%r13d
1800a2334:	0f 82 53 ff ff ff    	jb     0x1800a228d
1800a233a:	4c 8b b4 24 b0 00 00 	mov    0xb0(%rsp),%r14
1800a2341:	00
1800a2342:	49 83 cd ff          	or     $0xffffffffffffffff,%r13
1800a2346:	48 8b b4 24 a0 00 00 	mov    0xa0(%rsp),%rsi
1800a234d:	00
1800a234e:	45 33 c9             	xor    %r9d,%r9d
1800a2351:	44 8b 64 24 2c       	mov    0x2c(%rsp),%r12d
1800a2356:	8b 84 24 b8 00 00 00 	mov    0xb8(%rsp),%eax
1800a235d:	41 8b 4e 04          	mov    0x4(%r14),%ecx
1800a2361:	41 8b 2e             	mov    (%r14),%ebp
1800a2364:	48 8b 56 50          	mov    0x50(%rsi),%rdx
1800a2368:	49 ff c5             	inc    %r13
1800a236b:	66 46 39 0c 6a       	cmp    %r9w,(%rdx,%r13,2)
1800a2370:	75 f6                	jne    0x1800a2368
1800a2372:	8d 1c 01             	lea    (%rcx,%rax,1),%ebx
1800a2375:	8b d5                	mov    %ebp,%edx
1800a2377:	48 8b 07             	mov    (%rdi),%rax
1800a237a:	44 8b c3             	mov    %ebx,%r8d
1800a237d:	48 8b cf             	mov    %rdi,%rcx
1800a2380:	48 8b 40 58          	mov    0x58(%rax),%rax
1800a2384:	ff d0                	call   *%rax
1800a2386:	0f 1f 00             	nopl   (%rax)
1800a2389:	33 c0                	xor    %eax,%eax
1800a238b:	45 85 ed             	test   %r13d,%r13d
1800a238e:	0f 84 ef 00 00 00    	je     0x1800a2483
1800a2394:	83 7e 68 01          	cmpl   $0x1,0x68(%rsi)
1800a2398:	45 8b ed             	mov    %r13d,%r13d
1800a239b:	75 6d                	jne    0x1800a240a
1800a239d:	44 8b a4 24 b8 00 00 	mov    0xb8(%rsp),%r12d
1800a23a4:	00
1800a23a5:	44 8b 74 24 20       	mov    0x20(%rsp),%r14d
1800a23aa:	8b 74 24 28          	mov    0x28(%rsp),%esi
1800a23ae:	48 8b 07             	mov    (%rdi),%rax
1800a23b1:	ba 2a 00 00 00       	mov    $0x2a,%edx
1800a23b6:	48 8b cf             	mov    %rdi,%rcx
1800a23b9:	48 8b 40 28          	mov    0x28(%rax),%rax
1800a23bd:	ff d0                	call   *%rax
1800a23bf:	0f 1f 00             	nopl   (%rax)
1800a23c2:	03 d8                	add    %eax,%ebx
1800a23c4:	3b de                	cmp    %esi,%ebx
1800a23c6:	76 1b                	jbe    0x1800a23e3
1800a23c8:	48 8b 07             	mov    (%rdi),%rax
1800a23cb:	43 8d 1c 3c          	lea    (%r12,%r15,1),%ebx
1800a23cf:	41 03 ee             	add    %r14d,%ebp
1800a23d2:	44 8b c3             	mov    %ebx,%r8d
1800a23d5:	8b d5                	mov    %ebp,%edx
1800a23d7:	48 8b cf             	mov    %rdi,%rcx
1800a23da:	48 8b 40 58          	mov    0x58(%rax),%rax
1800a23de:	ff d0                	call   *%rax
1800a23e0:	0f 1f 00             	nopl   (%rax)
1800a23e3:	48 8b 07             	mov    (%rdi),%rax
1800a23e6:	ba 2a 00 00 00       	mov    $0x2a,%edx
1800a23eb:	48 8b cf             	mov    %rdi,%rcx
1800a23ee:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
1800a23f5:	ff d0                	call   *%rax
1800a23f7:	0f 1f 00             	nopl   (%rax)
1800a23fa:	49 83 ed 01          	sub    $0x1,%r13
1800a23fe:	75 ae                	jne    0x1800a23ae
1800a2400:	48 8b b4 24 a0 00 00 	mov    0xa0(%rsp),%rsi
1800a2407:	00
1800a2408:	eb 6c                	jmp    0x1800a2476
1800a240a:	44 8b b4 24 b8 00 00 	mov    0xb8(%rsp),%r14d
1800a2411:	00
1800a2412:	4c 8b e0             	mov    %rax,%r12
1800a2415:	48 8b 4e 50          	mov    0x50(%rsi),%rcx
1800a2419:	48 8b 07             	mov    (%rdi),%rax
1800a241c:	42 0f b7 14 21       	movzwl (%rcx,%r12,1),%edx
1800a2421:	48 8b cf             	mov    %rdi,%rcx
1800a2424:	48 8b 40 28          	mov    0x28(%rax),%rax
1800a2428:	ff d0                	call   *%rax
1800a242a:	0f 1f 00             	nopl   (%rax)
1800a242d:	03 d8                	add    %eax,%ebx
1800a242f:	3b 5c 24 28          	cmp    0x28(%rsp),%ebx
1800a2433:	76 1c                	jbe    0x1800a2451
1800a2435:	48 8b 07             	mov    (%rdi),%rax
1800a2438:	43 8d 1c 3e          	lea    (%r14,%r15,1),%ebx
1800a243c:	03 6c 24 20          	add    0x20(%rsp),%ebp
1800a2440:	44 8b c3             	mov    %ebx,%r8d
1800a2443:	8b d5                	mov    %ebp,%edx
1800a2445:	48 8b cf             	mov    %rdi,%rcx
1800a2448:	48 8b 40 58          	mov    0x58(%rax),%rax
1800a244c:	ff d0                	call   *%rax
1800a244e:	0f 1f 00             	nopl   (%rax)
1800a2451:	48 8b 4e 50          	mov    0x50(%rsi),%rcx
1800a2455:	48 8b 07             	mov    (%rdi),%rax
1800a2458:	42 0f b7 14 21       	movzwl (%rcx,%r12,1),%edx
1800a245d:	48 8b cf             	mov    %rdi,%rcx
1800a2460:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
1800a2467:	ff d0                	call   *%rax
1800a2469:	0f 1f 00             	nopl   (%rax)
1800a246c:	49 83 c4 02          	add    $0x2,%r12
1800a2470:	49 83 ed 01          	sub    $0x1,%r13
1800a2474:	75 9f                	jne    0x1800a2415
1800a2476:	44 8b 64 24 2c       	mov    0x2c(%rsp),%r12d
1800a247b:	4c 8b b4 24 b0 00 00 	mov    0xb0(%rsp),%r14
1800a2482:	00
1800a2483:	44 8b 44 24 30       	mov    0x30(%rsp),%r8d
1800a2488:	44 03 84 24 b8 00 00 	add    0xb8(%rsp),%r8d
1800a248f:	00
1800a2490:	45 03 46 04          	add    0x4(%r14),%r8d
1800a2494:	41 8b 16             	mov    (%r14),%edx
1800a2497:	45 3b c4             	cmp    %r12d,%r8d
1800a249a:	76 12                	jbe    0x1800a24ae
1800a249c:	8b 44 24 38          	mov    0x38(%rsp),%eax
1800a24a0:	8b 4c 24 20          	mov    0x20(%rsp),%ecx
1800a24a4:	44 2b c0             	sub    %eax,%r8d
1800a24a7:	03 d1                	add    %ecx,%edx
1800a24a9:	45 3b c4             	cmp    %r12d,%r8d
1800a24ac:	77 f6                	ja     0x1800a24a4
1800a24ae:	48 8b 07             	mov    (%rdi),%rax
1800a24b1:	48 8b cf             	mov    %rdi,%rcx
1800a24b4:	48 8b 40 58          	mov    0x58(%rax),%rax
1800a24b8:	ff d0                	call   *%rax
1800a24ba:	0f 1f 00             	nopl   (%rax)
1800a24bd:	48 8b 07             	mov    (%rdi),%rax
1800a24c0:	33 db                	xor    %ebx,%ebx
1800a24c2:	48 8b cf             	mov    %rdi,%rcx
1800a24c5:	48 8b 40 48          	mov    0x48(%rax),%rax
1800a24c9:	39 5e 60             	cmp    %ebx,0x60(%rsi)
1800a24cc:	74 34                	je     0x1800a2502
1800a24ce:	0f b7 56 6c          	movzwl 0x6c(%rsi),%edx
1800a24d2:	ff d0                	call   *%rax
1800a24d4:	0f 1f 00             	nopl   (%rax)
1800a24d7:	48 8b 07             	mov    (%rdi),%rax
1800a24da:	48 8d 15 03 01 0b 00 	lea    0xb0103(%rip),%rdx        # 0x1801525e4
1800a24e1:	48 8b cf             	mov    %rdi,%rcx
1800a24e4:	48 8b 40 78          	mov    0x78(%rax),%rax
1800a24e8:	ff d0                	call   *%rax
1800a24ea:	0f 1f 00             	nopl   (%rax)
1800a24ed:	48 8b 07             	mov    (%rdi),%rax
1800a24f0:	48 8b cf             	mov    %rdi,%rcx
1800a24f3:	0f b7 56 6e          	movzwl 0x6e(%rsi),%edx
1800a24f7:	48 8b 40 48          	mov    0x48(%rax),%rax
1800a24fb:	ff d0                	call   *%rax
1800a24fd:	0f 1f 00             	nopl   (%rax)
1800a2500:	eb 1f                	jmp    0x1800a2521
1800a2502:	0f b7 56 6e          	movzwl 0x6e(%rsi),%edx
1800a2506:	ff d0                	call   *%rax
1800a2508:	0f 1f 00             	nopl   (%rax)
1800a250b:	48 8b 07             	mov    (%rdi),%rax
1800a250e:	48 8d 15 b3 00 0b 00 	lea    0xb00b3(%rip),%rdx        # 0x1801525c8
1800a2515:	48 8b cf             	mov    %rdi,%rcx
1800a2518:	48 8b 40 78          	mov    0x78(%rax),%rax
1800a251c:	ff d0                	call   *%rax
1800a251e:	0f 1f 00             	nopl   (%rax)
1800a2521:	48 8b 07             	mov    (%rdi),%rax
1800a2524:	48 8b cf             	mov    %rdi,%rcx
1800a2527:	0f b7 94 24 a8 00 00 	movzwl 0xa8(%rsp),%edx
1800a252e:	00
1800a252f:	48 8b 40 48          	mov    0x48(%rax),%rax
1800a2533:	ff d0                	call   *%rax
1800a2535:	0f 1f 00             	nopl   (%rax)
1800a2538:	8b 46 3c             	mov    0x3c(%rsi),%eax
1800a253b:	39 46 44             	cmp    %eax,0x44(%rsi)
1800a253e:	77 14                	ja     0x1800a2554
1800a2540:	8b 54 24 24          	mov    0x24(%rsp),%edx
1800a2544:	4c 8d 84 24 b0 00 00 	lea    0xb0(%rsp),%r8
1800a254b:	00
1800a254c:	48 8b ce             	mov    %rsi,%rcx
1800a254f:	e8 2c 07 00 00       	call   0x1800a2c80
1800a2554:	48 8b 4e 28          	mov    0x28(%rsi),%rcx
1800a2558:	44 8b 84 24 b4 00 00 	mov    0xb4(%rsp),%r8d
1800a255f:	00
1800a2560:	8b 94 24 b0 00 00 00 	mov    0xb0(%rsp),%edx
1800a2567:	48 8b 01             	mov    (%rcx),%rax
1800a256a:	48 8b 40 58          	mov    0x58(%rax),%rax
1800a256e:	ff d0                	call   *%rax
1800a2570:	0f 1f 00             	nopl   (%rax)
1800a2573:	39 5e 60             	cmp    %ebx,0x60(%rsi)
1800a2576:	74 14                	je     0x1800a258c
1800a2578:	48 8b 07             	mov    (%rdi),%rax
1800a257b:	ba 01 00 00 00       	mov    $0x1,%edx
1800a2580:	48 8b cf             	mov    %rdi,%rcx
1800a2583:	48 8b 40 60          	mov    0x60(%rax),%rax
1800a2587:	ff d0                	call   *%rax
1800a2589:	0f 1f 00             	nopl   (%rax)
1800a258c:	48 83 c4 58          	add    $0x58,%rsp
1800a2590:	41 5f                	pop    %r15
1800a2592:	41 5e                	pop    %r14
1800a2594:	41 5d                	pop    %r13
1800a2596:	41 5c                	pop    %r12
1800a2598:	5f                   	pop    %rdi
1800a2599:	5e                   	pop    %rsi
1800a259a:	5d                   	pop    %rbp
1800a259b:	5b                   	pop    %rbx
1800a259c:	c3                   	ret
1800a259d:	cc                   	int3
1800a259e:	cc                   	int3
1800a259f:	cc                   	int3
1800a25a0:	33 c0                	xor    %eax,%eax
1800a25a2:	83 79 68 02          	cmpl   $0x2,0x68(%rcx)
1800a25a6:	0f 95 c0             	setne  %al
1800a25a9:	c3                   	ret
1800a25aa:	cc                   	int3
1800a25ab:	cc                   	int3
1800a25ac:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800a25b1:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
1800a25b6:	57                   	push   %rdi
1800a25b7:	48 83 ec 20          	sub    $0x20,%rsp
1800a25bb:	48 8b d9             	mov    %rcx,%rbx
1800a25be:	8b fa                	mov    %edx,%edi
1800a25c0:	33 f6                	xor    %esi,%esi
1800a25c2:	33 d2                	xor    %edx,%edx
1800a25c4:	89 71 60             	mov    %esi,0x60(%rcx)
1800a25c7:	48 8b 49 28          	mov    0x28(%rcx),%rcx
1800a25cb:	48 8b 01             	mov    (%rcx),%rax
1800a25ce:	48 8b 40 60          	mov    0x60(%rax),%rax
1800a25d2:	ff d0                	call   *%rax
1800a25d4:	0f 1f 00             	nopl   (%rax)
1800a25d7:	83 7b 68 03          	cmpl   $0x3,0x68(%rbx)
1800a25db:	75 2e                	jne    0x1800a260b
1800a25dd:	48 8b 4b 50          	mov    0x50(%rbx),%rcx
1800a25e1:	66 39 31             	cmp    %si,(%rcx)
1800a25e4:	75 25                	jne    0x1800a260b
1800a25e6:	48 8b 53 58          	mov    0x58(%rbx),%rdx
1800a25ea:	48 83 c8 ff          	or     $0xffffffffffffffff,%rax
1800a25ee:	48 ff c0             	inc    %rax
1800a25f1:	66 39 34 42          	cmp    %si,(%rdx,%rax,2)
1800a25f5:	75 f7                	jne    0x1800a25ee
1800a25f7:	44 8d 40 01          	lea    0x1(%rax),%r8d
1800a25fb:	89 43 44             	mov    %eax,0x44(%rbx)
1800a25fe:	4d 03 c0             	add    %r8,%r8
1800a2601:	89 43 40             	mov    %eax,0x40(%rbx)