4123f8:	50                   	push   %eax
4123f9:	e8 d9 0f ff ff       	call   0x4033d7
4123fe:	8b f0                	mov    %eax,%esi
412400:	85 f6                	test   %esi,%esi
412402:	79 12                	jns    0x412416
412404:	68 48 22 45 00       	push   $0x452248
412409:	56                   	push   %esi
41240a:	e8 20 dd 02 00       	call   0x44012f
41240f:	59                   	pop    %ecx
412410:	59                   	pop    %ecx
412411:	e9 1a 01 00 00       	jmp    0x412530
412416:	8d 45 fc             	lea    -0x4(%ebp),%eax
412419:	50                   	push   %eax
41241a:	ff 75 f8             	push   -0x8(%ebp)
41241d:	e8 24 10 ff ff       	call   0x403446
412422:	8b f0                	mov    %eax,%esi
412424:	85 f6                	test   %esi,%esi
412426:	79 12                	jns    0x41243a
412428:	68 90 22 45 00       	push   $0x452290
41242d:	eb da                	jmp    0x412409
41242f:	85 f6                	test   %esi,%esi
412431:	79 07                	jns    0x41243a
412433:	68 c8 22 45 00       	push   $0x4522c8
412438:	eb cf                	jmp    0x412409
41243a:	8d 45 fc             	lea    -0x4(%ebp),%eax
41243d:	50                   	push   %eax
41243e:	e8 eb 06 ff ff       	call   0x402b2e
412443:	8b f0                	mov    %eax,%esi
412445:	85 f6                	test   %esi,%esi
412447:	79 07                	jns    0x412450
412449:	68 f8 22 45 00       	push   $0x4522f8
41244e:	eb b9                	jmp    0x412409
412450:	8b 5d 08             	mov    0x8(%ebp),%ebx
412453:	8d 45 f4             	lea    -0xc(%ebp),%eax
412456:	50                   	push   %eax
412457:	53                   	push   %ebx
412458:	e8 96 ea ff ff       	call   0x410ef3
41245d:	8b f0                	mov    %eax,%esi
41245f:	85 f6                	test   %esi,%esi
412461:	79 07                	jns    0x41246a
412463:	68 34 23 45 00       	push   $0x452334
412468:	eb 9f                	jmp    0x412409
41246a:	8b 7d f4             	mov    -0xc(%ebp),%edi
41246d:	6a 00                	push   $0x0
41246f:	ff 75 0c             	push   0xc(%ebp)
412472:	8d 47 08             	lea    0x8(%edi),%eax
412475:	c7 07 02 00 00 00    	movl   $0x2,(%edi)
41247b:	50                   	push   %eax
41247c:	e8 24 fd fe ff       	call   0x4021a5
412481:	8b f0                	mov    %eax,%esi
412483:	85 f6                	test   %esi,%esi
412485:	79 0a                	jns    0x412491
412487:	68 5c 23 45 00       	push   $0x45235c
41248c:	e9 78 ff ff ff       	jmp    0x412409
412491:	6a 00                	push   $0x0
412493:	ff 75 fc             	push   -0x4(%ebp)
412496:	8d 47 0c             	lea    0xc(%edi),%eax
412499:	50                   	push   %eax
41249a:	e8 06 fd fe ff       	call   0x4021a5
41249f:	8b f0                	mov    %eax,%esi
4124a1:	85 f6                	test   %esi,%esi
4124a3:	79 0a                	jns    0x4124af
4124a5:	68 8c 23 45 00       	push   $0x45238c
4124aa:	e9 5a ff ff ff       	jmp    0x412409
4124af:	8d 47 10             	lea    0x10(%edi),%eax
4124b2:	50                   	push   %eax
4124b3:	ff 73 04             	push   0x4(%ebx)
4124b6:	e8 2e 73 00 00       	call   0x4197e9
4124bb:	8b f0                	mov    %eax,%esi
4124bd:	85 f6                	test   %esi,%esi
4124bf:	79 0a                	jns    0x4124cb
4124c1:	68 bc 23 45 00       	push   $0x4523bc
4124c6:	e9 3e ff ff ff       	jmp    0x412409
4124cb:	8b 4d 10             	mov    0x10(%ebp),%ecx
4124ce:	8b 45 14             	mov    0x14(%ebp),%eax
4124d1:	89 4f 18             	mov    %ecx,0x18(%edi)
4124d4:	89 47 1c             	mov    %eax,0x1c(%edi)
4124d7:	01 4b 20             	add    %ecx,0x20(%ebx)
4124da:	11 43 24             	adc    %eax,0x24(%ebx)
4124dd:	33 d2                	xor    %edx,%edx
4124df:	8b 45 1c             	mov    0x1c(%ebp),%eax
4124e2:	8b ca                	mov    %edx,%ecx
4124e4:	ff 43 34             	incl   0x34(%ebx)
4124e7:	89 4d 18             	mov    %ecx,0x18(%ebp)
4124ea:	39 50 04             	cmp    %edx,0x4(%eax)
4124ed:	76 36                	jbe    0x412525
4124ef:	8b fa                	mov    %edx,%edi
4124f1:	8b 00                	mov    (%eax),%eax
4124f3:	03 c7                	add    %edi,%eax
4124f5:	39 50 08             	cmp    %edx,0x8(%eax)
4124f8:	74 1c                	je     0x412516
4124fa:	ff 75 fc             	push   -0x4(%ebp)
4124fd:	52                   	push   %edx
4124fe:	50                   	push   %eax
4124ff:	68 00 00 00 80       	push   $0x80000000
412504:	52                   	push   %edx
412505:	53                   	push   %ebx
412506:	e8 2f ea ff ff       	call   0x410f3a
41250b:	8b f0                	mov    %eax,%esi
41250d:	85 f6                	test   %esi,%esi
41250f:	78 46                	js     0x412557
412511:	8b 4d 18             	mov    0x18(%ebp),%ecx
412514:	33 d2                	xor    %edx,%edx
412516:	8b 45 1c             	mov    0x1c(%ebp),%eax
412519:	41                   	inc    %ecx
41251a:	83 c7 58             	add    $0x58,%edi
41251d:	89 4d 18             	mov    %ecx,0x18(%ebp)
412520:	3b 48 04             	cmp    0x4(%eax),%ecx
412523:	72 cc                	jb     0x4124f1
412525:	8b 45 20             	mov    0x20(%ebp),%eax
412528:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41252b:	89 55 fc             	mov    %edx,-0x4(%ebp)
41252e:	89 08                	mov    %ecx,(%eax)
412530:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
412534:	74 08                	je     0x41253e
412536:	ff 75 fc             	push   -0x4(%ebp)
412539:	e8 b1 2f 03 00       	call   0x4454ef
41253e:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
412542:	74 08                	je     0x41254c
412544:	ff 75 f8             	push   -0x8(%ebp)
412547:	e8 a3 2f 03 00       	call   0x4454ef
41254c:	5f                   	pop    %edi
41254d:	8b c6                	mov    %esi,%eax
41254f:	5e                   	pop    %esi
412550:	5b                   	pop    %ebx
412551:	8b e5                	mov    %ebp,%esp
412553:	5d                   	pop    %ebp
412554:	c2 1c 00             	ret    $0x1c
412557:	68 ec 23 45 00       	push   $0x4523ec
41255c:	e9 a8 fe ff ff       	jmp    0x412409
412561:	55                   	push   %ebp
412562:	8b ec                	mov    %esp,%ebp
412564:	51                   	push   %ecx
412565:	51                   	push   %ecx
412566:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41256a:	8d 45 fc             	lea    -0x4(%ebp),%eax
41256d:	56                   	push   %esi
41256e:	57                   	push   %edi
41256f:	8b 7d 08             	mov    0x8(%ebp),%edi
412572:	50                   	push   %eax
412573:	57                   	push   %edi
412574:	e8 7a e9 ff ff       	call   0x410ef3
412579:	8b f0                	mov    %eax,%esi
41257b:	85 f6                	test   %esi,%esi
41257d:	79 12                	jns    0x412591
41257f:	68 fc 29 45 00       	push   $0x4529fc
412584:	56                   	push   %esi
412585:	e8 a5 db 02 00       	call   0x44012f
41258a:	59                   	pop    %ecx
41258b:	59                   	pop    %ecx
41258c:	e9 f1 00 00 00       	jmp    0x412682
412591:	8b 45 fc             	mov    -0x4(%ebp),%eax
412594:	33 d2                	xor    %edx,%edx
412596:	53                   	push   %ebx
412597:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41259a:	89 55 08             	mov    %edx,0x8(%ebp)
41259d:	c7 00 03 00 00 00    	movl   $0x3,(%eax)
4125a3:	89 58 08             	mov    %ebx,0x8(%eax)
4125a6:	8b 4f 50             	mov    0x50(%edi),%ecx
4125a9:	49                   	dec    %ecx
4125aa:	89 4d 0c             	mov    %ecx,0xc(%ebp)
4125ad:	39 93 80 00 00 00    	cmp    %edx,0x80(%ebx)
4125b3:	0f 86 8b 00 00 00    	jbe    0x412644
4125b9:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4125bd:	8b 73 7c             	mov    0x7c(%ebx),%esi
4125c0:	89 75 f8             	mov    %esi,-0x8(%ebp)
4125c3:	74 26                	je     0x4125eb
4125c5:	8b 04 d6             	mov    (%esi,%edx,8),%eax
4125c8:	83 78 3c 00          	cmpl   $0x0,0x3c(%eax)
4125cc:	74 1d                	je     0x4125eb
4125ce:	ff 75 10             	push   0x10(%ebp)
4125d1:	6a 00                	push   $0x0
4125d3:	ff 70 3c             	push   0x3c(%eax)
4125d6:	51                   	push   %ecx
4125d7:	53                   	push   %ebx
4125d8:	57                   	push   %edi
4125d9:	e8 ca eb ff ff       	call   0x4111a8
4125de:	8b f0                	mov    %eax,%esi
4125e0:	85 f6                	test   %esi,%esi
4125e2:	79 1d                	jns    0x412601
4125e4:	68 24 2a 45 00       	push   $0x452a24
4125e9:	eb 6e                	jmp    0x412659
4125eb:	ff 75 10             	push   0x10(%ebp)
4125ee:	6a 00                	push   $0x0
4125f0:	ff 34 d6             	push   (%esi,%edx,8)
4125f3:	51                   	push   %ecx
4125f4:	53                   	push   %ebx
4125f5:	57                   	push   %edi
4125f6:	e8 3f e9 ff ff       	call   0x410f3a
4125fb:	8b f0                	mov    %eax,%esi
4125fd:	85 f6                	test   %esi,%esi
4125ff:	78 3c                	js     0x41263d
412601:	6b 75 0c 28          	imul   $0x28,0xc(%ebp),%esi
412605:	8b 47 4c             	mov    0x4c(%edi),%eax
412608:	8b 4d 08             	mov    0x8(%ebp),%ecx
41260b:	ff 44 30 0c          	incl   0xc(%eax,%esi,1)
41260f:	8b 45 f8             	mov    -0x8(%ebp),%eax
412612:	8b 57 4c             	mov    0x4c(%edi),%edx
412615:	8b 0c c8             	mov    (%eax,%ecx,8),%ecx
412618:	8b 41 10             	mov    0x10(%ecx),%eax
41261b:	01 44 32 10          	add    %eax,0x10(%edx,%esi,1)
41261f:	8b 41 14             	mov    0x14(%ecx),%eax
412622:	11 44 32 14          	adc    %eax,0x14(%edx,%esi,1)
412626:	8b 55 08             	mov    0x8(%ebp),%edx
412629:	42                   	inc    %edx
41262a:	89 55 08             	mov    %edx,0x8(%ebp)
41262d:	3b 93 80 00 00 00    	cmp    0x80(%ebx),%edx
412633:	73 0f                	jae    0x412644
412635:	8b 4d 0c             	mov    0xc(%ebp),%ecx
412638:	e9 7c ff ff ff       	jmp    0x4125b9
41263d:	68 50 2a 45 00       	push   $0x452a50
412642:	eb 15                	jmp    0x412659
412644:	8d 45 fc             	lea    -0x4(%ebp),%eax
412647:	50                   	push   %eax
412648:	57                   	push   %edi
412649:	e8 a5 e8 ff ff       	call   0x410ef3
41264e:	8b f0                	mov    %eax,%esi
412650:	85 f6                	test   %esi,%esi
412652:	79 0f                	jns    0x412663
412654:	68 80 2a 45 00       	push   $0x452a80
412659:	56                   	push   %esi
41265a:	e8 d0 da 02 00       	call   0x44012f
41265f:	59                   	pop    %ecx
412660:	59                   	pop    %ecx
412661:	eb 1e                	jmp    0x412681
412663:	8b 45 fc             	mov    -0x4(%ebp),%eax
412666:	6b 4d 0c 28          	imul   $0x28,0xc(%ebp),%ecx
41266a:	c7 00 04 00 00 00    	movl   $0x4,(%eax)
412670:	89 58 08             	mov    %ebx,0x8(%eax)
412673:	8b 57 50             	mov    0x50(%edi),%edx
412676:	8b 47 4c             	mov    0x4c(%edi),%eax
412679:	4a                   	dec    %edx
41267a:	89 54 01 18          	mov    %edx,0x18(%ecx,%eax,1)
41267e:	ff 47 34             	incl   0x34(%edi)
412681:	5b                   	pop    %ebx
412682:	5f                   	pop    %edi
412683:	8b c6                	mov    %esi,%eax
412685:	5e                   	pop    %esi
412686:	8b e5                	mov    %ebp,%esp
412688:	5d                   	pop    %ebp
412689:	c2 0c 00             	ret    $0xc
41268c:	55                   	push   %ebp
41268d:	8b ec                	mov    %esp,%ebp
41268f:	83 ec 24             	sub    $0x24,%esp
412692:	53                   	push   %ebx
412693:	56                   	push   %esi
412694:	57                   	push   %edi
412695:	8b 7d 14             	mov    0x14(%ebp),%edi
412698:	ba 00 00 00 80       	mov    $0x80000000,%edx
41269d:	8b ca                	mov    %edx,%ecx
41269f:	89 55 f4             	mov    %edx,-0xc(%ebp)
4126a2:	89 55 e8             	mov    %edx,-0x18(%ebp)
4126a5:	33 db                	xor    %ebx,%ebx
4126a7:	8b f3                	mov    %ebx,%esi
4126a9:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4126ac:	8b 47 0c             	mov    0xc(%edi),%eax
4126af:	89 45 f0             	mov    %eax,-0x10(%ebp)
4126b2:	8b c2                	mov    %edx,%eax
4126b4:	8b 55 10             	mov    0x10(%ebp),%edx
4126b7:	89 45 dc             	mov    %eax,-0x24(%ebp)
4126ba:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4126bd:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4126c0:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4126c3:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4126c6:	39 5a 0c             	cmp    %ebx,0xc(%edx)
4126c9:	0f 86 1f 02 00 00    	jbe    0x4128ee
4126cf:	8b 42 0c             	mov    0xc(%edx),%eax
4126d2:	8b cb                	mov    %ebx,%ecx
4126d4:	83 3f 03             	cmpl   $0x3,(%edi)
4126d7:	75 05                	jne    0x4126de
4126d9:	2b c1                	sub    %ecx,%eax
4126db:	48                   	dec    %eax
4126dc:	eb 02                	jmp    0x4126e0
4126de:	8b c1                	mov    %ecx,%eax
4126e0:	69 c0 e0 00 00 00    	imul   $0xe0,%eax,%eax
4126e6:	03 42 08             	add    0x8(%edx),%eax
4126e9:	89 45 14             	mov    %eax,0x14(%ebp)
4126ec:	83 b8 8c 00 00 00 01 	cmpl   $0x1,0x8c(%eax)
4126f3:	75 66                	jne    0x41275b
4126f5:	83 b8 b0 00 00 00 01 	cmpl   $0x1,0xb0(%eax)
4126fc:	75 5d                	jne    0x41275b
4126fe:	8b 55 08             	mov    0x8(%ebp),%edx
412701:	8b 8a c0 00 00 00    	mov    0xc0(%edx),%ecx
412707:	85 c9                	test   %ecx,%ecx
412709:	74 34                	je     0x41273f
41270b:	66 39 19             	cmp    %bx,(%ecx)
41270e:	74 2f                	je     0x41273f
412710:	ff 72 10             	push   0x10(%edx)
412713:	05 a4 00 00 00       	add    $0xa4,%eax
412718:	51                   	push   %ecx
412719:	68 0c 24 45 00       	push   $0x45240c
41271e:	50                   	push   %eax
41271f:	e8 fc f7 fe ff       	call   0x401f20
412724:	8b f0                	mov    %eax,%esi
412726:	83 c4 10             	add    $0x10,%esp
412729:	85 f6                	test   %esi,%esi
41272b:	79 2b                	jns    0x412758
41272d:	68 1c 24 45 00       	push   $0x45241c
412732:	56                   	push   %esi
412733:	e8 f7 d9 02 00       	call   0x44012f
412738:	59                   	pop    %ecx
412739:	59                   	pop    %ecx
41273a:	e9 b0 02 00 00       	jmp    0x4129ef
41273f:	53                   	push   %ebx
412740:	ff 72 10             	push   0x10(%edx)
412743:	05 a4 00 00 00       	add    $0xa4,%eax
412748:	50                   	push   %eax
412749:	e8 57 fa fe ff       	call   0x4021a5
41274e:	8b f0                	mov    %eax,%esi
412750:	85 f6                	test   %esi,%esi
412752:	0f 88 4c 01 00 00    	js     0x4128a4
412758:	8b 45 14             	mov    0x14(%ebp),%eax
41275b:	8d 4d dc             	lea    -0x24(%ebp),%ecx
41275e:	51                   	push   %ecx
41275f:	8d 4d f8             	lea    -0x8(%ebp),%ecx
412762:	51                   	push   %ecx
412763:	ff 75 30             	push   0x30(%ebp)
412766:	ff 75 2c             	push   0x2c(%ebp)
412769:	ff 75 28             	push   0x28(%ebp)
41276c:	ff 75 24             	push   0x24(%ebp)
41276f:	ff 75 1c             	push   0x1c(%ebp)
412772:	ff 75 18             	push   0x18(%ebp)
412775:	50                   	push   %eax
412776:	57                   	push   %edi
412777:	ff 75 0c             	push   0xc(%ebp)
41277a:	53                   	push   %ebx
41277b:	ff 75 f0             	push   -0x10(%ebp)
41277e:	e8 51 f0 ff ff       	call   0x4117d4
412783:	8b f0                	mov    %eax,%esi
412785:	85 f6                	test   %esi,%esi
412787:	0f 88 57 01 00 00    	js     0x4128e4
41278d:	83 3f 03             	cmpl   $0x3,(%edi)
412790:	0f 85 e8 00 00 00    	jne    0x41287e
412796:	8b 45 14             	mov    0x14(%ebp),%eax
412799:	83 b8 8c 00 00 00 02 	cmpl   $0x2,0x8c(%eax)
4127a0:	0f 85 d8 00 00 00    	jne    0x41287e
4127a6:	39 98 d8 00 00 00    	cmp    %ebx,0xd8(%eax)
4127ac:	0f 84 cc 00 00 00    	je     0x41287e
4127b2:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4127b5:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4127b8:	51                   	push   %ecx
4127b9:	50                   	push   %eax
4127ba:	ff 75 10             	push   0x10(%ebp)
4127bd:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4127c0:	e8 8f 0c 01 00       	call   0x423454
4127c5:	8b f0                	mov    %eax,%esi
4127c7:	85 f6                	test   %esi,%esi
4127c9:	0f 88 fd 00 00 00    	js     0x4128cc
4127cf:	8d 45 f4             	lea    -0xc(%ebp),%eax
4127d2:	50                   	push   %eax