61627d:	c2 10 00             	ret    $0x10
616280:	55                   	push   %ebp
616281:	8b ec                	mov    %esp,%ebp
616283:	56                   	push   %esi
616284:	8b 75 0c             	mov    0xc(%ebp),%esi
616287:	57                   	push   %edi
616288:	8b f9                	mov    %ecx,%edi
61628a:	8b 47 08             	mov    0x8(%edi),%eax
61628d:	2b 47 14             	sub    0x14(%edi),%eax
616290:	3b c6                	cmp    %esi,%eax
616292:	0f 42 f0             	cmovb  %eax,%esi
616295:	8b 47 0c             	mov    0xc(%edi),%eax
616298:	03 47 14             	add    0x14(%edi),%eax
61629b:	3b 45 08             	cmp    0x8(%ebp),%eax
61629e:	74 0d                	je     0x6162ad
6162a0:	56                   	push   %esi
6162a1:	ff 75 08             	push   0x8(%ebp)
6162a4:	50                   	push   %eax
6162a5:	e8 56 cc fc ff       	call   0x5e2f00
6162aa:	83 c4 0c             	add    $0xc,%esp
6162ad:	01 77 14             	add    %esi,0x14(%edi)
6162b0:	8b c6                	mov    %esi,%eax
6162b2:	5f                   	pop    %edi
6162b3:	5e                   	pop    %esi
6162b4:	5d                   	pop    %ebp
6162b5:	c2 08 00             	ret    $0x8
6162b8:	55                   	push   %ebp
6162b9:	8b ec                	mov    %esp,%ebp
6162bb:	8b 55 08             	mov    0x8(%ebp),%edx
6162be:	85 d2                	test   %edx,%edx
6162c0:	56                   	push   %esi
6162c1:	0f 94 c0             	sete   %al
6162c4:	be 00 01 00 00       	mov    $0x100,%esi
6162c9:	84 c0                	test   %al,%al
6162cb:	88 41 0c             	mov    %al,0xc(%ecx)
6162ce:	0f 45 d6             	cmovne %esi,%edx
6162d1:	89 51 10             	mov    %edx,0x10(%ecx)
6162d4:	5e                   	pop    %esi
6162d5:	5d                   	pop    %ebp
6162d6:	c2 04 00             	ret    $0x4
6162d9:	55                   	push   %ebp
6162da:	8b ec                	mov    %esp,%ebp
6162dc:	8b 41 14             	mov    0x14(%ecx),%eax
6162df:	56                   	push   %esi
6162e0:	8b 75 08             	mov    0x8(%ebp),%esi
6162e3:	8b 50 14             	mov    0x14(%eax),%edx
6162e6:	2b 50 10             	sub    0x10(%eax),%edx
6162e9:	89 16                	mov    %edx,(%esi)
6162eb:	75 0e                	jne    0x6162fb
6162ed:	8b 41 20             	mov    0x20(%ecx),%eax
6162f0:	85 c0                	test   %eax,%eax
6162f2:	74 07                	je     0x6162fb
6162f4:	89 06                	mov    %eax,(%esi)
6162f6:	8b 41 1c             	mov    0x1c(%ecx),%eax
6162f9:	eb 09                	jmp    0x616304
6162fb:	8b 49 14             	mov    0x14(%ecx),%ecx
6162fe:	8b 41 10             	mov    0x10(%ecx),%eax
616301:	03 41 0c             	add    0xc(%ecx),%eax
616304:	5e                   	pop    %esi
616305:	5d                   	pop    %ebp
616306:	c2 04 00             	ret    $0x4
616309:	cc                   	int3
61630a:	cc                   	int3
61630b:	cc                   	int3
61630c:	cc                   	int3
61630d:	cc                   	int3
61630e:	cc                   	int3
61630f:	cc                   	int3
616310:	55                   	push   %ebp
616311:	8b ec                	mov    %esp,%ebp
616313:	83 ec 4c             	sub    $0x4c,%esp
616316:	a1 d4 89 72 00       	mov    0x7289d4,%eax
61631b:	33 c5                	xor    %ebp,%eax
61631d:	89 45 fc             	mov    %eax,-0x4(%ebp)
616320:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
616324:	8b 55 08             	mov    0x8(%ebp),%edx
616327:	53                   	push   %ebx
616328:	8b 5d 0c             	mov    0xc(%ebp),%ebx
61632b:	56                   	push   %esi
61632c:	8b 75 10             	mov    0x10(%ebp),%esi
61632f:	57                   	push   %edi
616330:	8b f9                	mov    %ecx,%edi
616332:	89 55 c4             	mov    %edx,-0x3c(%ebp)
616335:	89 7d b8             	mov    %edi,-0x48(%ebp)
616338:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
61633b:	89 75 bc             	mov    %esi,-0x44(%ebp)
61633e:	0f 84 ab 00 00 00    	je     0x6163ef
616344:	8b 47 14             	mov    0x14(%edi),%eax
616347:	8b 33                	mov    (%ebx),%esi
616349:	8b 4b 04             	mov    0x4(%ebx),%ecx
61634c:	89 45 c0             	mov    %eax,-0x40(%ebp)
61634f:	8b c6                	mov    %esi,%eax
616351:	0b c1                	or     %ecx,%eax
616353:	89 4d c8             	mov    %ecx,-0x38(%ebp)
616356:	74 31                	je     0x616389
616358:	8b 7d c0             	mov    -0x40(%ebp),%edi
61635b:	8b d9                	mov    %ecx,%ebx
61635d:	85 ff                	test   %edi,%edi
61635f:	74 1f                	je     0x616380
616361:	ff 75 bc             	push   -0x44(%ebp)
616364:	8b cf                	mov    %edi,%ecx
616366:	53                   	push   %ebx
616367:	56                   	push   %esi
616368:	52                   	push   %edx
616369:	e8 b4 01 00 00       	call   0x616522
61636e:	8b 3f                	mov    (%edi),%edi
616370:	2b f0                	sub    %eax,%esi
616372:	8b 55 c4             	mov    -0x3c(%ebp),%edx
616375:	6a 00                	push   $0x0
616377:	58                   	pop    %eax
616378:	1b d8                	sbb    %eax,%ebx
61637a:	8b c6                	mov    %esi,%eax
61637c:	0b c3                	or     %ebx,%eax
61637e:	75 dd                	jne    0x61635d
616380:	8b 7d b8             	mov    -0x48(%ebp),%edi
616383:	89 5d c8             	mov    %ebx,-0x38(%ebp)
616386:	8b 5d b4             	mov    -0x4c(%ebp),%ebx
616389:	8b cf                	mov    %edi,%ecx
61638b:	e8 97 f8 ff ff       	call   0x615c27
616390:	8b 45 c8             	mov    -0x38(%ebp),%eax
616393:	33 d2                	xor    %edx,%edx
616395:	8b 4f 20             	mov    0x20(%edi),%ecx
616398:	89 4d c0             	mov    %ecx,-0x40(%ebp)
61639b:	3b d0                	cmp    %eax,%edx
61639d:	77 06                	ja     0x6163a5
61639f:	72 09                	jb     0x6163aa
6163a1:	3b ce                	cmp    %esi,%ecx
6163a3:	72 05                	jb     0x6163aa
6163a5:	8b ce                	mov    %esi,%ecx
6163a7:	89 75 c0             	mov    %esi,-0x40(%ebp)
6163aa:	85 c9                	test   %ecx,%ecx
6163ac:	74 38                	je     0x6163e6
6163ae:	38 57 24             	cmp    %dl,0x24(%edi)
6163b1:	8b 55 c4             	mov    -0x3c(%ebp),%edx
6163b4:	6a 01                	push   $0x1
6163b6:	6a 00                	push   $0x0
6163b8:	51                   	push   %ecx
6163b9:	ff 77 1c             	push   0x1c(%edi)
6163bc:	8b 02                	mov    (%edx),%eax
6163be:	8b ca                	mov    %edx,%ecx
6163c0:	ff 75 bc             	push   -0x44(%ebp)
6163c3:	74 08                	je     0x6163cd
6163c5:	ff 90 8c 00 00 00    	call   *0x8c(%eax)
6163cb:	eb 06                	jmp    0x6163d3
6163cd:	ff 90 88 00 00 00    	call   *0x88(%eax)
6163d3:	8b 45 c0             	mov    -0x40(%ebp),%eax
6163d6:	01 47 1c             	add    %eax,0x1c(%edi)
6163d9:	29 47 20             	sub    %eax,0x20(%edi)
6163dc:	2b f0                	sub    %eax,%esi
6163de:	8b 45 c8             	mov    -0x38(%ebp),%eax
6163e1:	6a 00                	push   $0x0
6163e3:	59                   	pop    %ecx
6163e4:	1b c1                	sbb    %ecx,%eax
6163e6:	29 33                	sub    %esi,(%ebx)
6163e8:	19 43 04             	sbb    %eax,0x4(%ebx)
6163eb:	33 c0                	xor    %eax,%eax
6163ed:	eb 29                	jmp    0x616418
6163ef:	57                   	push   %edi
6163f0:	8d 4d cc             	lea    -0x34(%ebp),%ecx
6163f3:	e8 31 f7 ff ff       	call   0x615b29
6163f8:	8b 55 c4             	mov    -0x3c(%ebp),%edx
6163fb:	8d 4d cc             	lea    -0x34(%ebp),%ecx
6163fe:	6a 00                	push   $0x0
616400:	56                   	push   %esi
616401:	53                   	push   %ebx
616402:	52                   	push   %edx
616403:	e8 28 00 00 00       	call   0x616430
616408:	ff 73 04             	push   0x4(%ebx)
61640b:	8b 17                	mov    (%edi),%edx
61640d:	8b cf                	mov    %edi,%ecx
61640f:	ff 33                	push   (%ebx)
616411:	8b f0                	mov    %eax,%esi
616413:	ff 52 54             	call   *0x54(%edx)
616416:	8b c6                	mov    %esi,%eax
616418:	8b 4d fc             	mov    -0x4(%ebp),%ecx
61641b:	5f                   	pop    %edi
61641c:	5e                   	pop    %esi
61641d:	33 cd                	xor    %ebp,%ecx
61641f:	5b                   	pop    %ebx
616420:	e8 b5 b0 fc ff       	call   0x5e14da
616425:	8b e5                	mov    %ebp,%esp
616427:	5d                   	pop    %ebp
616428:	c2 10 00             	ret    $0x10
61642b:	cc                   	int3
61642c:	cc                   	int3
61642d:	cc                   	int3
61642e:	cc                   	int3
61642f:	cc                   	int3
616430:	55                   	push   %ebp
616431:	8b ec                	mov    %esp,%ebp
616433:	51                   	push   %ecx
616434:	53                   	push   %ebx
616435:	8b 5d 0c             	mov    0xc(%ebp),%ebx
616438:	56                   	push   %esi
616439:	8b f1                	mov    %ecx,%esi
61643b:	33 c9                	xor    %ecx,%ecx
61643d:	57                   	push   %edi
61643e:	8b 3b                	mov    (%ebx),%edi
616440:	8b d1                	mov    %ecx,%edx
616442:	8b 5b 04             	mov    0x4(%ebx),%ebx
616445:	8b 46 10             	mov    0x10(%esi),%eax
616448:	89 5d fc             	mov    %ebx,-0x4(%ebp)
61644b:	eb 6f                	jmp    0x6164bc
61644d:	8b 48 14             	mov    0x14(%eax),%ecx
616450:	2b 48 10             	sub    0x10(%eax),%ecx
616453:	33 c0                	xor    %eax,%eax
616455:	2b 4e 20             	sub    0x20(%esi),%ecx
616458:	50                   	push   %eax
616459:	5a                   	pop    %edx
61645a:	1b c2                	sbb    %edx,%eax
61645c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
61645f:	3b c3                	cmp    %ebx,%eax
616461:	77 06                	ja     0x616469
616463:	72 09                	jb     0x61646e
616465:	3b cf                	cmp    %edi,%ecx
616467:	72 05                	jb     0x61646e
616469:	8b cf                	mov    %edi,%ecx
61646b:	89 7d fc             	mov    %edi,-0x4(%ebp)
61646e:	ff 75 14             	push   0x14(%ebp)
616471:	8b 55 08             	mov    0x8(%ebp),%edx
616474:	33 c0                	xor    %eax,%eax
616476:	50                   	push   %eax
616477:	51                   	push   %ecx
616478:	8b 4e 10             	mov    0x10(%esi),%ecx
61647b:	8b 12                	mov    (%edx),%edx
61647d:	8b 41 10             	mov    0x10(%ecx),%eax
616480:	03 46 20             	add    0x20(%esi),%eax
616483:	03 41 0c             	add    0xc(%ecx),%eax
616486:	8b 4d 08             	mov    0x8(%ebp),%ecx
616489:	50                   	push   %eax
61648a:	ff 75 10             	push   0x10(%ebp)
61648d:	ff 92 88 00 00 00    	call   *0x88(%edx)
616493:	8b d0                	mov    %eax,%edx
616495:	85 d2                	test   %edx,%edx
616497:	75 76                	jne    0x61650f
616499:	8b 4d fc             	mov    -0x4(%ebp),%ecx
61649c:	01 4e 18             	add    %ecx,0x18(%esi)
61649f:	11 46 1c             	adc    %eax,0x1c(%esi)
6164a2:	2b f9                	sub    %ecx,%edi
6164a4:	1b d8                	sbb    %eax,%ebx
6164a6:	8b c7                	mov    %edi,%eax
6164a8:	0b c3                	or     %ebx,%eax
6164aa:	89 5d fc             	mov    %ebx,-0x4(%ebp)
6164ad:	74 58                	je     0x616507
6164af:	8b 46 10             	mov    0x10(%esi),%eax
6164b2:	33 c9                	xor    %ecx,%ecx
6164b4:	8b 00                	mov    (%eax),%eax
6164b6:	89 46 10             	mov    %eax,0x10(%esi)
6164b9:	89 4e 20             	mov    %ecx,0x20(%esi)
6164bc:	85 c0                	test   %eax,%eax
6164be:	75 8d                	jne    0x61644d
6164c0:	8b c7                	mov    %edi,%eax
6164c2:	0b c3                	or     %ebx,%eax
6164c4:	74 49                	je     0x61650f
6164c6:	8b 5e 28             	mov    0x28(%esi),%ebx
6164c9:	85 db                	test   %ebx,%ebx
6164cb:	74 3f                	je     0x61650c
6164cd:	3b 4d fc             	cmp    -0x4(%ebp),%ecx
6164d0:	77 06                	ja     0x6164d8
6164d2:	72 06                	jb     0x6164da
6164d4:	3b df                	cmp    %edi,%ebx
6164d6:	72 02                	jb     0x6164da
6164d8:	8b df                	mov    %edi,%ebx
6164da:	ff 75 14             	push   0x14(%ebp)
6164dd:	8b 4d 08             	mov    0x8(%ebp),%ecx
6164e0:	33 d2                	xor    %edx,%edx
6164e2:	52                   	push   %edx
6164e3:	53                   	push   %ebx
6164e4:	ff 76 24             	push   0x24(%esi)
6164e7:	8b 01                	mov    (%ecx),%eax
6164e9:	ff 75 10             	push   0x10(%ebp)
6164ec:	ff 90 88 00 00 00    	call   *0x88(%eax)
6164f2:	8b d0                	mov    %eax,%edx
6164f4:	85 d2                	test   %edx,%edx
6164f6:	75 14                	jne    0x61650c
6164f8:	01 5e 24             	add    %ebx,0x24(%esi)
6164fb:	29 5e 28             	sub    %ebx,0x28(%esi)
6164fe:	2b fb                	sub    %ebx,%edi
616500:	8b 5d fc             	mov    -0x4(%ebp),%ebx
616503:	1b d8                	sbb    %eax,%ebx
616505:	eb 08                	jmp    0x61650f
616507:	01 4e 20             	add    %ecx,0x20(%esi)
61650a:	eb 03                	jmp    0x61650f
61650c:	8b 5d fc             	mov    -0x4(%ebp),%ebx
61650f:	8b 45 0c             	mov    0xc(%ebp),%eax
616512:	29 38                	sub    %edi,(%eax)
616514:	5f                   	pop    %edi
616515:	19 58 04             	sbb    %ebx,0x4(%eax)
616518:	8b c2                	mov    %edx,%eax
61651a:	5e                   	pop    %esi
61651b:	5b                   	pop    %ebx
61651c:	8b e5                	mov    %ebp,%esp
61651e:	5d                   	pop    %ebp
61651f:	c2 10 00             	ret    $0x10
616522:	55                   	push   %ebp
616523:	8b ec                	mov    %esp,%ebp
616525:	53                   	push   %ebx
616526:	8b d9                	mov    %ecx,%ebx
616528:	56                   	push   %esi
616529:	57                   	push   %edi
61652a:	8b 43 14             	mov    0x14(%ebx),%eax
61652d:	2b 43 10             	sub    0x10(%ebx),%eax
616530:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
616534:	77 09                	ja     0x61653f
616536:	8b 7d 0c             	mov    0xc(%ebp),%edi
616539:	72 06                	jb     0x616541
61653b:	3b f8                	cmp    %eax,%edi
61653d:	72 02                	jb     0x616541
61653f:	8b f8                	mov    %eax,%edi
616541:	8b 4d 08             	mov    0x8(%ebp),%ecx
616544:	8b 53 0c             	mov    0xc(%ebx),%edx
616547:	03 53 10             	add    0x10(%ebx),%edx
61654a:	6a 01                	push   $0x1
61654c:	8b 31                	mov    (%ecx),%esi
61654e:	6a 00                	push   $0x0
616550:	57                   	push   %edi
616551:	52                   	push   %edx
616552:	ff 75 14             	push   0x14(%ebp)
616555:	ff 96 8c 00 00 00    	call   *0x8c(%esi)
61655b:	01 7b 10             	add    %edi,0x10(%ebx)
61655e:	8b c7                	mov    %edi,%eax
616560:	5f                   	pop    %edi
616561:	5e                   	pop    %esi
616562:	5b                   	pop    %ebx
616563:	5d                   	pop    %ebp
616564:	c2 10 00             	ret    $0x10
616567:	6a 00                	push   $0x0
616569:	b8 dd 21 66 00       	mov    $0x6621dd,%eax
61656e:	e8 48 ba fc ff       	call   0x5e1fbb
616573:	8b f9                	mov    %ecx,%edi
616575:	8b 57 14             	mov    0x14(%edi),%edx
616578:	8d 45 0c             	lea    0xc(%ebp),%eax
61657b:	8b 75 0c             	mov    0xc(%ebp),%esi
61657e:	83 c2 10             	add    $0x10,%edx
616581:	8b 5d 08             	mov    0x8(%ebp),%ebx
616584:	39 32                	cmp    %esi,(%edx)
616586:	0f 42 c2             	cmovb  %edx,%eax
616589:	8b 00                	mov    (%eax),%eax
61658b:	2b f0                	sub    %eax,%esi
61658d:	29 02                	sub    %eax,(%edx)
61658f:	8b 4f 14             	mov    0x14(%edi),%ecx
616592:	50                   	push   %eax
616593:	8d 04 33             	lea    (%ebx,%esi,1),%eax
616596:	50                   	push   %eax
616597:	8b 41 10             	mov    0x10(%ecx),%eax
61659a:	03 41 0c             	add    0xc(%ecx),%eax
61659d:	50                   	push   %eax
61659e:	e8 5d c9 fc ff       	call   0x5e2f00
6165a3:	83 c4 0c             	add    $0xc,%esp
6165a6:	85 f6                	test   %esi,%esi