4073cc:	8d 4e 14             	lea    0x14(%esi),%ecx
4073cf:	53                   	push   %ebx
4073d0:	57                   	push   %edi
4073d1:	8b 7e 28             	mov    0x28(%esi),%edi
4073d4:	2b f8                	sub    %eax,%edi
4073d6:	50                   	push   %eax
4073d7:	3b 7e 2c             	cmp    0x2c(%esi),%edi
4073da:	73 26                	jae    0x407402
4073dc:	57                   	push   %edi
4073dd:	ff 75 0c             	push   0xc(%ebp)
4073e0:	e8 f6 69 00 00       	call   0x40dddb
4073e5:	8b 4e 2c             	mov    0x2c(%esi),%ecx
4073e8:	8b d8                	mov    %eax,%ebx
4073ea:	2b cf                	sub    %edi,%ecx
4073ec:	e8 ea e6 ff ff       	call   0x405adb
4073f1:	8b 56 2c             	mov    0x2c(%esi),%edx
4073f4:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4073f7:	2b d7                	sub    %edi,%edx
4073f9:	52                   	push   %edx
4073fa:	50                   	push   %eax
4073fb:	e8 c1 b9 ff ff       	call   0x402dc1
407400:	eb 0d                	jmp    0x40740f
407402:	ff 76 2c             	push   0x2c(%esi)
407405:	ff 75 0c             	push   0xc(%ebp)
407408:	e8 ce 69 00 00       	call   0x40dddb
40740d:	8b d8                	mov    %eax,%ebx
40740f:	5f                   	pop    %edi
407410:	8b c3                	mov    %ebx,%eax
407412:	5b                   	pop    %ebx
407413:	eb 02                	jmp    0x407417
407415:	33 c0                	xor    %eax,%eax
407417:	5e                   	pop    %esi
407418:	5d                   	pop    %ebp
407419:	c2 08 00             	ret    $0x8
40741c:	55                   	push   %ebp
40741d:	8b ec                	mov    %esp,%ebp
40741f:	53                   	push   %ebx
407420:	56                   	push   %esi
407421:	57                   	push   %edi
407422:	8b f9                	mov    %ecx,%edi
407424:	33 db                	xor    %ebx,%ebx
407426:	6a 05                	push   $0x5
407428:	5e                   	pop    %esi
407429:	6a 2c                	push   $0x2c
40742b:	59                   	pop    %ecx
40742c:	89 77 10             	mov    %esi,0x10(%edi)
40742f:	89 77 08             	mov    %esi,0x8(%edi)
407432:	89 5f 0c             	mov    %ebx,0xc(%edi)
407435:	e8 a1 e6 ff ff       	call   0x405adb
40743a:	85 c0                	test   %eax,%eax
40743c:	74 16                	je     0x407454
40743e:	8d 48 04             	lea    0x4(%eax),%ecx
407441:	89 30                	mov    %esi,(%eax)
407443:	8b c1                	mov    %ecx,%eax
407445:	89 18                	mov    %ebx,(%eax)
407447:	8d 40 08             	lea    0x8(%eax),%eax
40744a:	89 58 fc             	mov    %ebx,-0x4(%eax)
40744d:	83 ee 01             	sub    $0x1,%esi
407450:	75 f3                	jne    0x407445
407452:	eb 02                	jmp    0x407456
407454:	8b cb                	mov    %ebx,%ecx
407456:	89 4f 04             	mov    %ecx,0x4(%edi)
407459:	8d 4f 14             	lea    0x14(%edi),%ecx
40745c:	e8 0b 6a 00 00       	call   0x40de6c
407461:	b8 ff ff 00 00       	mov    $0xffff,%eax
407466:	8d 4f 18             	lea    0x18(%edi),%ecx
407469:	89 47 2c             	mov    %eax,0x2c(%edi)
40746c:	8d 45 08             	lea    0x8(%ebp),%eax
40746f:	50                   	push   %eax
407470:	e8 ef bd ff ff       	call   0x403264
407475:	51                   	push   %ecx
407476:	68 00 00 00 80       	push   $0x80000000
40747b:	8d 4f 14             	lea    0x14(%edi),%ecx
40747e:	e8 ad 6c 00 00       	call   0x40e130
407483:	85 c0                	test   %eax,%eax
407485:	74 1a                	je     0x4074a1
407487:	8b 47 28             	mov    0x28(%edi),%eax
40748a:	33 d2                	xor    %edx,%edx
40748c:	b9 ff ff 00 00       	mov    $0xffff,%ecx
407491:	f7 f1                	div    %ecx
407493:	89 47 30             	mov    %eax,0x30(%edi)
407496:	85 d2                	test   %edx,%edx
407498:	74 04                	je     0x40749e
40749a:	40                   	inc    %eax
40749b:	89 47 30             	mov    %eax,0x30(%edi)
40749e:	33 db                	xor    %ebx,%ebx
4074a0:	43                   	inc    %ebx
4074a1:	89 1f                	mov    %ebx,(%edi)
4074a3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4074a6:	e8 82 e5 ff ff       	call   0x405a2d
4074ab:	8b c7                	mov    %edi,%eax
4074ad:	5f                   	pop    %edi
4074ae:	5e                   	pop    %esi
4074af:	5b                   	pop    %ebx
4074b0:	5d                   	pop    %ebp
4074b1:	c2 08 00             	ret    $0x8
4074b4:	55                   	push   %ebp
4074b5:	8b ec                	mov    %esp,%ebp
4074b7:	83 e4 f8             	and    $0xfffffff8,%esp
4074ba:	81 ec d4 00 00 00    	sub    $0xd4,%esp
4074c0:	53                   	push   %ebx
4074c1:	56                   	push   %esi
4074c2:	57                   	push   %edi
4074c3:	6a 00                	push   $0x0
4074c5:	ff 15 ac 21 41 00    	call   *0x4121ac
4074cb:	8b 0d 90 66 41 00    	mov    0x416690,%ecx
4074d1:	8d 7c 24 14          	lea    0x14(%esp),%edi
4074d5:	8b d8                	mov    %eax,%ebx
4074d7:	81 c1 10 02 00 00    	add    $0x210,%ecx
4074dd:	33 c0                	xor    %eax,%eax
4074df:	ab                   	stos   %eax,%es:(%edi)
4074e0:	68 00 08 00 00       	push   $0x800
4074e5:	ab                   	stos   %eax,%es:(%edi)
4074e6:	ab                   	stos   %eax,%es:(%edi)
4074e7:	ab                   	stos   %eax,%es:(%edi)
4074e8:	33 ff                	xor    %edi,%edi
4074ea:	57                   	push   %edi
4074eb:	51                   	push   %ecx
4074ec:	e8 61 9b ff ff       	call   0x401052
4074f1:	a1 90 66 41 00       	mov    0x416690,%eax
4074f6:	83 c4 0c             	add    $0xc,%esp
4074f9:	83 c0 10             	add    $0x10,%eax
4074fc:	68 08 02 00 00       	push   $0x208
407501:	57                   	push   %edi
407502:	50                   	push   %eax
407503:	e8 4a 9b ff ff       	call   0x401052
407508:	a1 90 66 41 00       	mov    0x416690,%eax
40750d:	83 c4 0c             	add    $0xc,%esp
407510:	83 c0 10             	add    $0x10,%eax
407513:	50                   	push   %eax
407514:	57                   	push   %edi
407515:	57                   	push   %edi
407516:	6a 1c                	push   $0x1c
407518:	57                   	push   %edi
407519:	ff 15 5c 22 41 00    	call   *0x41225c
40751f:	a1 90 66 41 00       	mov    0x416690,%eax
407524:	8b 35 04 22 41 00    	mov    0x412204,%esi
40752a:	83 c0 10             	add    $0x10,%eax
40752d:	68 0c 26 41 00       	push   $0x41260c
407532:	50                   	push   %eax
407533:	ff d6                	call   *%esi
407535:	8d 44 24 14          	lea    0x14(%esp),%eax
407539:	50                   	push   %eax
40753a:	ff 15 9c 20 41 00    	call   *0x41209c
407540:	0f b7 44 24 20       	movzwl 0x20(%esp),%eax
407545:	50                   	push   %eax
407546:	0f b7 44 24 22       	movzwl 0x22(%esp),%eax
40754b:	50                   	push   %eax
40754c:	0f b7 44 24 24       	movzwl 0x24(%esp),%eax
407551:	50                   	push   %eax
407552:	0f b7 44 24 20       	movzwl 0x20(%esp),%eax
407557:	50                   	push   %eax
407558:	0f b7 44 24 26       	movzwl 0x26(%esp),%eax
40755d:	50                   	push   %eax
40755e:	0f b7 44 24 2e       	movzwl 0x2e(%esp),%eax
407563:	50                   	push   %eax
407564:	8d 44 24 58          	lea    0x58(%esp),%eax
407568:	68 54 29 41 00       	push   $0x412954
40756d:	50                   	push   %eax
40756e:	ff 15 9c 22 41 00    	call   *0x41229c
407574:	83 c4 20             	add    $0x20,%esp
407577:	8d 44 24 40          	lea    0x40(%esp),%eax
40757b:	50                   	push   %eax
40757c:	a1 90 66 41 00       	mov    0x416690,%eax
407581:	83 c0 10             	add    $0x10,%eax
407584:	50                   	push   %eax
407585:	ff d6                	call   *%esi
407587:	8b 0d 90 66 41 00    	mov    0x416690,%ecx
40758d:	8d 41 10             	lea    0x10(%ecx),%eax
407590:	83 c1 0c             	add    $0xc,%ecx
407593:	50                   	push   %eax
407594:	e8 93 bb ff ff       	call   0x40312c
407599:	a1 90 66 41 00       	mov    0x416690,%eax
40759e:	57                   	push   %edi
40759f:	68 80 00 00 00       	push   $0x80
4075a4:	6a 02                	push   $0x2
4075a6:	57                   	push   %edi
4075a7:	6a 01                	push   $0x1
4075a9:	68 00 00 00 10       	push   $0x10000000
4075ae:	ff 70 0c             	push   0xc(%eax)
4075b1:	ff 15 94 20 41 00    	call   *0x412094
4075b7:	8b 0d 90 66 41 00    	mov    0x416690,%ecx
4075bd:	50                   	push   %eax
4075be:	89 41 04             	mov    %eax,0x4(%ecx)
4075c1:	ff 15 00 22 41 00    	call   *0x412200
4075c7:	8d 54 24 10          	lea    0x10(%esp),%edx
4075cb:	89 7c 24 10          	mov    %edi,0x10(%esp)
4075cf:	b9 f0 2a 41 00       	mov    $0x412af0,%ecx
4075d4:	e8 98 86 00 00       	call   0x40fc71
4075d9:	33 d2                	xor    %edx,%edx
4075db:	8b c8                	mov    %eax,%ecx
4075dd:	e8 8e 73 00 00       	call   0x40e970
4075e2:	85 c0                	test   %eax,%eax
4075e4:	74 15                	je     0x4075fb
4075e6:	51                   	push   %ecx
4075e7:	ba 10 2b 41 00       	mov    $0x412b10,%edx
4075ec:	8b c8                	mov    %eax,%ecx
4075ee:	e8 14 73 00 00       	call   0x40e907
4075f3:	59                   	pop    %ecx
4075f4:	a3 8c 66 41 00       	mov    %eax,0x41668c
4075f9:	eb 05                	jmp    0x407600
4075fb:	a1 8c 66 41 00       	mov    0x41668c,%eax
407600:	57                   	push   %edi
407601:	53                   	push   %ebx
407602:	68 45 76 40 00       	push   $0x407645
407607:	6a 0d                	push   $0xd
407609:	ff d0                	call   *%eax
40760b:	8b 35 8c 22 41 00    	mov    0x41228c,%esi
407611:	83 c4 10             	add    $0x10,%esp
407614:	eb 16                	jmp    0x40762c
407616:	8d 44 24 24          	lea    0x24(%esp),%eax
40761a:	50                   	push   %eax
40761b:	ff 15 c0 22 41 00    	call   *0x4122c0
407621:	8d 44 24 24          	lea    0x24(%esp),%eax
407625:	50                   	push   %eax
407626:	ff 15 90 22 41 00    	call   *0x412290
40762c:	57                   	push   %edi
40762d:	57                   	push   %edi
40762e:	57                   	push   %edi
40762f:	8d 44 24 30          	lea    0x30(%esp),%eax
407633:	50                   	push   %eax
407634:	ff d6                	call   *%esi
407636:	85 c0                	test   %eax,%eax
407638:	7f dc                	jg     0x407616
40763a:	5f                   	pop    %edi
40763b:	5e                   	pop    %esi
40763c:	33 c0                	xor    %eax,%eax
40763e:	5b                   	pop    %ebx
40763f:	8b e5                	mov    %ebp,%esp
407641:	5d                   	pop    %ebp
407642:	c2 04 00             	ret    $0x4
407645:	55                   	push   %ebp
407646:	8b ec                	mov    %esp,%ebp
407648:	ff 75 10             	push   0x10(%ebp)
40764b:	8b 55 0c             	mov    0xc(%ebp),%edx
40764e:	8b 4d 08             	mov    0x8(%ebp),%ecx
407651:	e8 04 00 00 00       	call   0x40765a
407656:	5d                   	pop    %ebp
407657:	c2 0c 00             	ret    $0xc
40765a:	55                   	push   %ebp
40765b:	8b ec                	mov    %esp,%ebp
40765d:	83 ec 34             	sub    $0x34,%esp
407660:	53                   	push   %ebx
407661:	8b c2                	mov    %edx,%eax
407663:	8b d9                	mov    %ecx,%ebx
407665:	56                   	push   %esi
407666:	89 45 f8             	mov    %eax,-0x8(%ebp)
407669:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40766c:	57                   	push   %edi
40766d:	8b 7d 08             	mov    0x8(%ebp),%edi
407670:	2d 00 01 00 00       	sub    $0x100,%eax
407675:	74 09                	je     0x407680
407677:	83 e8 04             	sub    $0x4,%eax
40767a:	0f 85 10 04 00 00    	jne    0x407a90
407680:	8b 37                	mov    (%edi),%esi
407682:	83 fe 27             	cmp    $0x27,%esi
407685:	0f 82 a8 00 00 00    	jb     0x407733
40768b:	83 fe 40             	cmp    $0x40,%esi
40768e:	0f 87 a4 00 00 00    	ja     0x407738
407694:	6a 10                	push   $0x10
407696:	ff 15 a8 22 41 00    	call   *0x4122a8
40769c:	66 85 c0             	test   %ax,%ax
40769f:	74 77                	je     0x407718
4076a1:	83 c6 d0             	add    $0xffffffd0,%esi
4076a4:	83 fe 09             	cmp    $0x9,%esi
4076a7:	0f 87 e3 03 00 00    	ja     0x407a90
4076ad:	ff 24 b5 a6 7a 40 00 	jmp    *0x407aa6(,%esi,4)
4076b4:	b9 c4 29 41 00       	mov    $0x4129c4,%ecx
4076b9:	e9 cd 03 00 00       	jmp    0x407a8b
4076be:	b9 c8 29 41 00       	mov    $0x4129c8,%ecx
4076c3:	e9 c3 03 00 00       	jmp    0x407a8b
4076c8:	b9 cc 29 41 00       	mov    $0x4129cc,%ecx
4076cd:	e9 b9 03 00 00       	jmp    0x407a8b
4076d2:	b9 d0 29 41 00       	mov    $0x4129d0,%ecx
4076d7:	e9 af 03 00 00       	jmp    0x407a8b
4076dc:	b9 d4 29 41 00       	mov    $0x4129d4,%ecx
4076e1:	e9 a5 03 00 00       	jmp    0x407a8b
4076e6:	b9 d8 29 41 00       	mov    $0x4129d8,%ecx
4076eb:	e9 9b 03 00 00       	jmp    0x407a8b
4076f0:	b9 dc 29 41 00       	mov    $0x4129dc,%ecx
4076f5:	e9 91 03 00 00       	jmp    0x407a8b
4076fa:	b9 e0 29 41 00       	mov    $0x4129e0,%ecx
4076ff:	e9 87 03 00 00       	jmp    0x407a8b
407704:	b9 28 29 41 00       	mov    $0x412928,%ecx
407709:	e9 7d 03 00 00       	jmp    0x407a8b
40770e:	b9 e4 29 41 00       	mov    $0x4129e4,%ecx
407713:	e9 73 03 00 00       	jmp    0x407a8b
407718:	56                   	push   %esi
407719:	8d 45 ec             	lea    -0x14(%ebp),%eax
40771c:	68 e8 29 41 00       	push   $0x4129e8
407721:	50                   	push   %eax
407722:	ff 15 9c 22 41 00    	call   *0x41229c
407728:	83 c4 0c             	add    $0xc,%esp
40772b:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40772e:	e9 58 03 00 00       	jmp    0x407a8b
407733:	83 fe 40             	cmp    $0x40,%esi
407736:	76 4c                	jbe    0x407784
407738:	83 fe 5b             	cmp    $0x5b,%esi
40773b:	73 47                	jae    0x407784
40773d:	e8 9e 03 00 00       	call   0x407ae0
407742:	6a 10                	push   $0x10
407744:	8a d8                	mov    %al,%bl
407746:	ff 15 a8 22 41 00    	call   *0x4122a8
40774c:	66 85 c0             	test   %ax,%ax
40774f:	8a d3                	mov    %bl,%dl
407751:	0f 95 c1             	setne  %cl
407754:	e8 75 03 00 00       	call   0x407ace
407759:	84 c0                	test   %al,%al
40775b:	8d 4e 20             	lea    0x20(%esi),%ecx
40775e:	8d 45 ec             	lea    -0x14(%ebp),%eax
407761:	0f 45 ce             	cmovne %esi,%ecx
407764:	51                   	push   %ecx
407765:	68 e8 29 41 00       	push   $0x4129e8
40776a:	50                   	push   %eax
40776b:	ff 15 9c 22 41 00    	call   *0x41229c
407771:	83 c4 0c             	add    $0xc,%esp
407774:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407777:	e8 6f 03 00 00       	call   0x407aeb
40777c:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40777f:	e9 0c 03 00 00       	jmp    0x407a90
407784:	83 fe 66             	cmp    $0x66,%esi
407787:	0f 87 15 01 00 00    	ja     0x4078a2
40778d:	0f 84 05 01 00 00    	je     0x407898
407793:	83 fe 20             	cmp    $0x20,%esi
407796:	77 7e                	ja     0x407816
407798:	74 72                	je     0x40780c
40779a:	83 fe 11             	cmp    $0x11,%esi
40779d:	77 41                	ja     0x4077e0
40779f:	0f 84 61 01 00 00    	je     0x407906
4077a5:	83 ee 08             	sub    $0x8,%esi
4077a8:	74 2c                	je     0x4077d6
4077aa:	83 ee 01             	sub    $0x1,%esi
4077ad:	74 1d                	je     0x4077cc
4077af:	83 ee 04             	sub    $0x4,%esi
4077b2:	74 0e                	je     0x4077c2
4077b4:	83 ee 03             	sub    $0x3,%esi
4077b7:	0f 84 d3 02 00 00    	je     0x407a90
4077bd:	e9 65 02 00 00       	jmp    0x407a27
4077c2:	b9 f4 29 41 00       	mov    $0x4129f4,%ecx
4077c7:	e9 bf 02 00 00       	jmp    0x407a8b
4077cc:	b9 18 2a 41 00       	mov    $0x412a18,%ecx
4077d1:	e9 b5 02 00 00       	jmp    0x407a8b
4077d6:	b9 08 2a 41 00       	mov    $0x412a08,%ecx
4077db:	e9 ab 02 00 00       	jmp    0x407a8b
4077e0:	83 ee 12             	sub    $0x12,%esi
4077e3:	0f 84 74 01 00 00    	je     0x40795d
4077e9:	4e                   	dec    %esi
4077ea:	83 ee 01             	sub    $0x1,%esi
4077ed:	74 13                	je     0x407802
4077ef:	83 ee 07             	sub    $0x7,%esi