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
4127d3:	57                   	push   %edi
4127d4:	e8 d1 f4 ff ff       	call   0x411caa
4127d9:	8b f0                	mov    %eax,%esi
4127db:	85 f6                	test   %esi,%esi
4127dd:	0f 88 df 00 00 00    	js     0x4128c2
4127e3:	8b 55 f4             	mov    -0xc(%ebp),%edx
4127e6:	8b 45 14             	mov    0x14(%ebp),%eax
4127e9:	53                   	push   %ebx
4127ea:	c7 02 0e 00 00 00    	movl   $0xe,(%edx)
4127f0:	89 42 08             	mov    %eax,0x8(%edx)
4127f3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4127f6:	8b 81 98 00 00 00    	mov    0x98(%ecx),%eax
4127fc:	89 42 10             	mov    %eax,0x10(%edx)
4127ff:	8b 81 9c 00 00 00    	mov    0x9c(%ecx),%eax
412805:	89 42 14             	mov    %eax,0x14(%edx)
412808:	8b 45 fc             	mov    -0x4(%ebp),%eax
41280b:	ff b0 90 00 00 00    	push   0x90(%eax)
412811:	8d 42 0c             	lea    0xc(%edx),%eax
412814:	50                   	push   %eax
412815:	e8 8b f9 fe ff       	call   0x4021a5
41281a:	8b f0                	mov    %eax,%esi
41281c:	85 f6                	test   %esi,%esi
41281e:	0f 88 94 00 00 00    	js     0x4128b8
412824:	8d 45 dc             	lea    -0x24(%ebp),%eax
412827:	50                   	push   %eax
412828:	8d 45 f8             	lea    -0x8(%ebp),%eax
41282b:	50                   	push   %eax
41282c:	ff 75 30             	push   0x30(%ebp)
41282f:	ff 75 2c             	push   0x2c(%ebp)
412832:	ff 75 28             	push   0x28(%ebp)
412835:	ff 75 24             	push   0x24(%ebp)
412838:	ff 75 1c             	push   0x1c(%ebp)
41283b:	ff 75 18             	push   0x18(%ebp)
41283e:	ff 75 fc             	push   -0x4(%ebp)
412841:	57                   	push   %edi
412842:	ff 75 0c             	push   0xc(%ebp)
412845:	6a 01                	push   $0x1
412847:	ff 75 f0             	push   -0x10(%ebp)
41284a:	e8 85 ef ff ff       	call   0x4117d4
41284f:	8b f0                	mov    %eax,%esi
412851:	85 f6                	test   %esi,%esi
412853:	78 59                	js     0x4128ae
412855:	8b 4d fc             	mov    -0x4(%ebp),%ecx
412858:	83 79 5c 01          	cmpl   $0x1,0x5c(%ecx)
41285c:	75 20                	jne    0x41287e
41285e:	8b 45 14             	mov    0x14(%ebp),%eax
412861:	ff b0 90 00 00 00    	push   0x90(%eax)
412867:	ff b1 90 00 00 00    	push   0x90(%ecx)
41286d:	ff 30                	push   (%eax)
41286f:	68 d7 00 00 20       	push   $0x200000d7
412874:	6a 02                	push   $0x2
412876:	e8 94 2c ff ff       	call   0x40550f
41287b:	83 c4 14             	add    $0x14,%esp
41287e:	8b 55 10             	mov    0x10(%ebp),%edx
412881:	8b 4d ec             	mov    -0x14(%ebp),%ecx
412884:	41                   	inc    %ecx
412885:	89 4d ec             	mov    %ecx,-0x14(%ebp)
412888:	8b 42 0c             	mov    0xc(%edx),%eax
41288b:	3b c8                	cmp    %eax,%ecx
41288d:	0f 82 41 fe ff ff    	jb     0x4126d4
412893:	8b 45 e8             	mov    -0x18(%ebp),%eax
412896:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
412899:	8b 55 e0             	mov    -0x20(%ebp),%edx
41289c:	89 45 f4             	mov    %eax,-0xc(%ebp)
41289f:	8b 45 dc             	mov    -0x24(%ebp),%eax
4128a2:	eb 4d                	jmp    0x4128f1
4128a4:	68 5c 24 45 00       	push   $0x45245c
4128a9:	e9 84 fe ff ff       	jmp    0x412732
4128ae:	68 2c 25 45 00       	push   $0x45252c
4128b3:	e9 7a fe ff ff       	jmp    0x412732
4128b8:	68 04 25 45 00       	push   $0x452504
4128bd:	e9 70 fe ff ff       	jmp    0x412732
4128c2:	68 e0 24 45 00       	push   $0x4524e0
4128c7:	e9 66 fe ff ff       	jmp    0x412732
4128cc:	8b 45 14             	mov    0x14(%ebp),%eax
4128cf:	ff 30                	push   (%eax)
4128d1:	68 ac 24 45 00       	push   $0x4524ac
4128d6:	56                   	push   %esi
4128d7:	e8 53 d8 02 00       	call   0x44012f
4128dc:	83 c4 0c             	add    $0xc,%esp
4128df:	e9 0b 01 00 00       	jmp    0x4129ef
4128e4:	68 90 24 45 00       	push   $0x452490
4128e9:	e9 44 fe ff ff       	jmp    0x412732
4128ee:	8b 55 fc             	mov    -0x4(%ebp),%edx
4128f1:	39 5d 20             	cmp    %ebx,0x20(%ebp)
4128f4:	75 34                	jne    0x41292a
4128f6:	83 3f 05             	cmpl   $0x5,(%edi)
4128f9:	74 0a                	je     0x412905
4128fb:	83 3f 06             	cmpl   $0x6,(%edi)
4128fe:	74 05                	je     0x412905
412900:	83 3f 07             	cmpl   $0x7,(%edi)
412903:	75 25                	jne    0x41292a
412905:	3d 00 00 00 80       	cmp    $0x80000000,%eax
41290a:	75 06                	jne    0x412912
41290c:	8b 47 60             	mov    0x60(%edi),%eax
41290f:	8b 57 68             	mov    0x68(%edi),%edx
412912:	52                   	push   %edx
412913:	50                   	push   %eax
412914:	57                   	push   %edi
412915:	e8 15 fa ff ff       	call   0x41232f
41291a:	8b f0                	mov    %eax,%esi
41291c:	85 f6                	test   %esi,%esi
41291e:	79 3a                	jns    0x41295a
412920:	68 54 25 45 00       	push   $0x452554
412925:	e9 08 fe ff ff       	jmp    0x412732
41292a:	83 3f 03             	cmpl   $0x3,(%edi)
41292d:	75 2b                	jne    0x41295a
41292f:	81 f9 00 00 00 80    	cmp    $0x80000000,%ecx
412935:	75 08                	jne    0x41293f
412937:	8b 4f 60             	mov    0x60(%edi),%ecx
41293a:	8b 47 68             	mov    0x68(%edi),%eax
41293d:	eb 03                	jmp    0x412942
41293f:	8b 45 f4             	mov    -0xc(%ebp),%eax
412942:	50                   	push   %eax
412943:	51                   	push   %ecx
412944:	57                   	push   %edi
412945:	e8 7c 0b 00 00       	call   0x4134c6
41294a:	8b f0                	mov    %eax,%esi
41294c:	85 f6                	test   %esi,%esi
41294e:	79 0a                	jns    0x41295a
412950:	68 80 25 45 00       	push   $0x452580
412955:	e9 d8 fd ff ff       	jmp    0x412732
41295a:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
41295d:	74 16                	je     0x412975
41295f:	57                   	push   %edi
412960:	e8 91 0d 00 00       	call   0x4136f6
412965:	8b f0                	mov    %eax,%esi
412967:	85 f6                	test   %esi,%esi
412969:	79 0a                	jns    0x412975
41296b:	68 b0 25 45 00       	push   $0x4525b0
412970:	e9 bd fd ff ff       	jmp    0x412732
412975:	8b 55 10             	mov    0x10(%ebp),%edx
412978:	8b cb                	mov    %ebx,%ecx
41297a:	89 5d 14             	mov    %ebx,0x14(%ebp)
41297d:	8b 42 0c             	mov    0xc(%edx),%eax
412980:	85 c0                	test   %eax,%eax
412982:	74 33                	je     0x4129b7
412984:	83 3f 03             	cmpl   $0x3,(%edi)
412987:	75 05                	jne    0x41298e
412989:	2b c1                	sub    %ecx,%eax
41298b:	48                   	dec    %eax
41298c:	eb 02                	jmp    0x412990
41298e:	8b c1                	mov    %ecx,%eax
412990:	69 c0 e0 00 00 00    	imul   $0xe0,%eax,%eax
412996:	03 42 08             	add    0x8(%edx),%eax
412999:	50                   	push   %eax
41299a:	57                   	push   %edi
41299b:	e8 49 f4 ff ff       	call   0x411de9
4129a0:	8b f0                	mov    %eax,%esi
4129a2:	85 f6                	test   %esi,%esi
4129a4:	78 22                	js     0x4129c8
4129a6:	8b 55 10             	mov    0x10(%ebp),%edx
4129a9:	8b 4d 14             	mov    0x14(%ebp),%ecx
4129ac:	41                   	inc    %ecx
4129ad:	89 4d 14             	mov    %ecx,0x14(%ebp)
4129b0:	8b 42 0c             	mov    0xc(%edx),%eax
4129b3:	3b c8                	cmp    %eax,%ecx
4129b5:	72 cd                	jb     0x412984
4129b7:	8b 42 14             	mov    0x14(%edx),%eax
4129ba:	85 c0                	test   %eax,%eax
4129bc:	74 31                	je     0x4129ef
4129be:	83 3f 03             	cmpl   $0x3,(%edi)
4129c1:	75 0f                	jne    0x4129d2
4129c3:	2b c3                	sub    %ebx,%eax
4129c5:	48                   	dec    %eax
4129c6:	eb 0c                	jmp    0x4129d4
4129c8:	68 d8 25 45 00       	push   $0x4525d8
4129cd:	e9 60 fd ff ff       	jmp    0x412732
4129d2:	8b c3                	mov    %ebx,%eax
4129d4:	69 c0 e0 00 00 00    	imul   $0xe0,%eax,%eax
4129da:	03 42 10             	add    0x10(%edx),%eax
4129dd:	50                   	push   %eax
4129de:	57                   	push   %edi
4129df:	e8 05 f4 ff ff       	call   0x411de9
4129e4:	8b 55 10             	mov    0x10(%ebp),%edx