40743d:	8b fa                	mov    %edx,%edi
40743f:	8b f1                	mov    %ecx,%esi
407441:	83 7e 30 00          	cmpl   $0x0,0x30(%esi)
407445:	8b d7                	mov    %edi,%edx
407447:	75 14                	jne    0x40745d
407449:	8b 4e 0c             	mov    0xc(%esi),%ecx
40744c:	8b c7                	mov    %edi,%eax
40744e:	2b 4e 2c             	sub    0x2c(%esi),%ecx
407451:	2b 46 24             	sub    0x24(%esi),%eax
407454:	3b c1                	cmp    %ecx,%eax
407456:	76 05                	jbe    0x40745d
407458:	8b 56 24             	mov    0x24(%esi),%edx
40745b:	03 d1                	add    %ecx,%edx
40745d:	53                   	push   %ebx
40745e:	8b ce                	mov    %esi,%ecx
407460:	e8 2b f2 ff ff       	call   0x406690
407465:	85 c0                	test   %eax,%eax
407467:	75 39                	jne    0x4074a2
407469:	8b 46 0c             	mov    0xc(%esi),%eax
40746c:	39 46 2c             	cmp    %eax,0x2c(%esi)
40746f:	72 03                	jb     0x407474
407471:	89 46 30             	mov    %eax,0x30(%esi)
407474:	8b d7                	mov    %edi,%edx
407476:	8b ce                	mov    %esi,%ecx
407478:	e8 35 ff ff ff       	call   0x4073b2
40747d:	39 7e 24             	cmp    %edi,0x24(%esi)
407480:	73 0e                	jae    0x407490
407482:	39 5e 18             	cmp    %ebx,0x18(%esi)
407485:	73 09                	jae    0x407490
407487:	81 7e 48 12 01 00 00 	cmpl   $0x112,0x48(%esi)
40748e:	72 b1                	jb     0x407441
407490:	81 7e 48 12 01 00 00 	cmpl   $0x112,0x48(%esi)
407497:	76 07                	jbe    0x4074a0
407499:	c7 46 48 12 01 00 00 	movl   $0x112,0x48(%esi)
4074a0:	33 c0                	xor    %eax,%eax
4074a2:	5f                   	pop    %edi
4074a3:	5e                   	pop    %esi
4074a4:	5b                   	pop    %ebx
4074a5:	5d                   	pop    %ebp
4074a6:	c2 04 00             	ret    $0x4
4074a9:	55                   	push   %ebp
4074aa:	8b ec                	mov    %esp,%ebp
4074ac:	83 ec 20             	sub    $0x20,%esp
4074af:	8b 45 08             	mov    0x8(%ebp),%eax
4074b2:	53                   	push   %ebx
4074b3:	8b da                	mov    %edx,%ebx
4074b5:	89 55 e8             	mov    %edx,-0x18(%ebp)
4074b8:	8b d1                	mov    %ecx,%edx
4074ba:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
4074c1:	03 c3                	add    %ebx,%eax
4074c3:	89 55 f0             	mov    %edx,-0x10(%ebp)
4074c6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4074c9:	56                   	push   %esi
4074ca:	8b 4a 2c             	mov    0x2c(%edx),%ecx
4074cd:	8b 42 10             	mov    0x10(%edx),%eax
4074d0:	8b 72 20             	mov    0x20(%edx),%esi
4074d3:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4074d6:	8b 4a 08             	mov    0x8(%edx),%ecx
4074d9:	d3 65 f4             	shll   %cl,-0xc(%ebp)
4074dc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4074df:	89 45 f8             	mov    %eax,-0x8(%ebp)
4074e2:	49                   	dec    %ecx
4074e3:	23 4a 2c             	and    0x2c(%edx),%ecx
4074e6:	8b 42 34             	mov    0x34(%edx),%eax
4074e9:	89 45 ec             	mov    %eax,-0x14(%ebp)
4074ec:	c1 e0 04             	shl    $0x4,%eax
4074ef:	03 c1                	add    %ecx,%eax
4074f1:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4074f4:	8b 4a 10             	mov    0x10(%edx),%ecx
4074f7:	57                   	push   %edi
4074f8:	8b 7a 1c             	mov    0x1c(%edx),%edi
4074fb:	0f b7 0c 41          	movzwl (%ecx,%eax,2),%ecx
4074ff:	81 ff 00 00 00 01    	cmp    $0x1000000,%edi
407505:	73 18                	jae    0x40751f
407507:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
40750a:	0f 83 14 05 00 00    	jae    0x407a24
407510:	0f b6 03             	movzbl (%ebx),%eax
407513:	c1 e6 08             	shl    $0x8,%esi
407516:	c1 e7 08             	shl    $0x8,%edi
407519:	0b f0                	or     %eax,%esi
40751b:	43                   	inc    %ebx
40751c:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40751f:	8b c7                	mov    %edi,%eax
407521:	c1 e8 0b             	shr    $0xb,%eax
407524:	0f af c1             	imul   %ecx,%eax
407527:	3b f0                	cmp    %eax,%esi
407529:	0f 83 3f 01 00 00    	jae    0x40766e
40752f:	8b f8                	mov    %eax,%edi
407531:	33 c9                	xor    %ecx,%ecx
407533:	8b 42 10             	mov    0x10(%edx),%eax
407536:	05 6c 0e 00 00       	add    $0xe6c,%eax
40753b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40753e:	39 4a 30             	cmp    %ecx,0x30(%edx)
407541:	75 05                	jne    0x407548
407543:	39 4a 2c             	cmp    %ecx,0x2c(%edx)
407546:	74 42                	je     0x40758a
407548:	8b 4a 24             	mov    0x24(%edx),%ecx
40754b:	85 c9                	test   %ecx,%ecx
40754d:	75 03                	jne    0x407552
40754f:	8b 4a 28             	mov    0x28(%edx),%ecx
407552:	8b 42 14             	mov    0x14(%edx),%eax
407555:	6a 08                	push   $0x8
407557:	0f b6 54 08 ff       	movzbl -0x1(%eax,%ecx,1),%edx
40755c:	8b 45 f0             	mov    -0x10(%ebp),%eax
40755f:	59                   	pop    %ecx
407560:	2a 08                	sub    (%eax),%cl
407562:	33 c0                	xor    %eax,%eax
407564:	d3 ea                	shr    %cl,%edx
407566:	40                   	inc    %eax
407567:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40756a:	8b 49 04             	mov    0x4(%ecx),%ecx
40756d:	d3 e0                	shl    %cl,%eax
40756f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407572:	48                   	dec    %eax
407573:	23 45 e0             	and    -0x20(%ebp),%eax
407576:	8b 09                	mov    (%ecx),%ecx
407578:	d3 e0                	shl    %cl,%eax
40757a:	03 d0                	add    %eax,%edx
40757c:	69 c2 00 06 00 00    	imul   $0x600,%edx,%eax
407582:	8b 55 f0             	mov    -0x10(%ebp),%edx
407585:	01 45 f4             	add    %eax,-0xc(%ebp)
407588:	33 c9                	xor    %ecx,%ecx
40758a:	83 7a 34 07          	cmpl   $0x7,0x34(%edx)
40758e:	73 4e                	jae    0x4075de
407590:	33 c9                	xor    %ecx,%ecx
407592:	41                   	inc    %ecx
407593:	8b 45 f4             	mov    -0xc(%ebp),%eax
407596:	03 c9                	add    %ecx,%ecx
407598:	0f b7 14 01          	movzwl (%ecx,%eax,1),%edx
40759c:	81 ff 00 00 00 01    	cmp    $0x1000000,%edi
4075a2:	73 15                	jae    0x4075b9
4075a4:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
4075a7:	0f 83 77 04 00 00    	jae    0x407a24
4075ad:	0f b6 03             	movzbl (%ebx),%eax
4075b0:	c1 e6 08             	shl    $0x8,%esi
4075b3:	c1 e7 08             	shl    $0x8,%edi
4075b6:	0b f0                	or     %eax,%esi
4075b8:	43                   	inc    %ebx
4075b9:	8b c7                	mov    %edi,%eax
4075bb:	c1 e8 0b             	shr    $0xb,%eax
4075be:	0f af c2             	imul   %edx,%eax
4075c1:	3b f0                	cmp    %eax,%esi
4075c3:	73 04                	jae    0x4075c9
4075c5:	8b f8                	mov    %eax,%edi
4075c7:	eb 05                	jmp    0x4075ce
4075c9:	2b f8                	sub    %eax,%edi
4075cb:	2b f0                	sub    %eax,%esi
4075cd:	41                   	inc    %ecx
4075ce:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
4075d4:	72 bd                	jb     0x407593
4075d6:	33 c9                	xor    %ecx,%ecx
4075d8:	41                   	inc    %ecx
4075d9:	e9 35 04 00 00       	jmp    0x407a13
4075de:	8b 42 38             	mov    0x38(%edx),%eax
4075e1:	39 42 24             	cmp    %eax,0x24(%edx)
4075e4:	73 03                	jae    0x4075e9
4075e6:	8b 4a 28             	mov    0x28(%edx),%ecx
4075e9:	8b 42 14             	mov    0x14(%edx),%eax
4075ec:	2b 42 38             	sub    0x38(%edx),%eax
4075ef:	03 42 24             	add    0x24(%edx),%eax
4075f2:	33 d2                	xor    %edx,%edx
4075f4:	42                   	inc    %edx
4075f5:	0f b6 0c 08          	movzbl (%eax,%ecx,1),%ecx
4075f9:	b8 00 01 00 00       	mov    $0x100,%eax
4075fe:	8b 5d f4             	mov    -0xc(%ebp),%ebx
407601:	03 c9                	add    %ecx,%ecx
407603:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
407606:	8b c8                	mov    %eax,%ecx
407608:	23 4d e4             	and    -0x1c(%ebp),%ecx
40760b:	89 45 ec             	mov    %eax,-0x14(%ebp)
40760e:	8d 04 11             	lea    (%ecx,%edx,1),%eax
407611:	03 45 ec             	add    -0x14(%ebp),%eax
407614:	0f b7 04 43          	movzwl (%ebx,%eax,2),%eax
407618:	8b 5d e8             	mov    -0x18(%ebp),%ebx
40761b:	89 45 e0             	mov    %eax,-0x20(%ebp)
40761e:	81 ff 00 00 00 01    	cmp    $0x1000000,%edi
407624:	73 18                	jae    0x40763e
407626:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
407629:	0f 83 f5 03 00 00    	jae    0x407a24
40762f:	0f b6 03             	movzbl (%ebx),%eax
407632:	c1 e6 08             	shl    $0x8,%esi
407635:	c1 e7 08             	shl    $0x8,%edi
407638:	0b f0                	or     %eax,%esi
40763a:	43                   	inc    %ebx
40763b:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40763e:	8b c7                	mov    %edi,%eax
407640:	03 d2                	add    %edx,%edx
407642:	c1 e8 0b             	shr    $0xb,%eax
407645:	0f af 45 e0          	imul   -0x20(%ebp),%eax
407649:	3b f0                	cmp    %eax,%esi
40764b:	73 06                	jae    0x407653
40764d:	8b f8                	mov    %eax,%edi
40764f:	f7 d1                	not    %ecx
407651:	eb 05                	jmp    0x407658
407653:	2b f8                	sub    %eax,%edi
407655:	2b f0                	sub    %eax,%esi
407657:	42                   	inc    %edx
407658:	81 fa 00 01 00 00    	cmp    $0x100,%edx
40765e:	0f 83 72 ff ff ff    	jae    0x4075d6
407664:	8b 45 ec             	mov    -0x14(%ebp),%eax
407667:	23 c1                	and    %ecx,%eax
407669:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40766c:	eb 90                	jmp    0x4075fe
40766e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407671:	2b f8                	sub    %eax,%edi
407673:	8b 55 fc             	mov    -0x4(%ebp),%edx
407676:	2b f0                	sub    %eax,%esi
407678:	8b 45 ec             	mov    -0x14(%ebp),%eax
40767b:	0f b7 8c 41 80 01 00 	movzwl 0x180(%ecx,%eax,2),%ecx
407682:	00
407683:	81 ff 00 00 00 01    	cmp    $0x1000000,%edi
407689:	73 14                	jae    0x40769f
40768b:	3b da                	cmp    %edx,%ebx
40768d:	0f 83 91 03 00 00    	jae    0x407a24
407693:	0f b6 03             	movzbl (%ebx),%eax
407696:	c1 e6 08             	shl    $0x8,%esi
407699:	c1 e7 08             	shl    $0x8,%edi
40769c:	0b f0                	or     %eax,%esi
40769e:	43                   	inc    %ebx
40769f:	8b c7                	mov    %edi,%eax
4076a1:	c1 e8 0b             	shr    $0xb,%eax
4076a4:	0f af c1             	imul   %ecx,%eax
4076a7:	33 c9                	xor    %ecx,%ecx
4076a9:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4076ac:	3b f0                	cmp    %eax,%esi
4076ae:	73 15                	jae    0x4076c5
4076b0:	8b f8                	mov    %eax,%edi
4076b2:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4076b5:	6a 02                	push   $0x2
4076b7:	58                   	pop    %eax
4076b8:	89 45 e8             	mov    %eax,-0x18(%ebp)
4076bb:	b8 64 06 00 00       	mov    $0x664,%eax
4076c0:	e9 28 01 00 00       	jmp    0x4077ed
4076c5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4076c8:	2b f8                	sub    %eax,%edi
4076ca:	2b f0                	sub    %eax,%esi
4076cc:	6a 03                	push   $0x3
4076ce:	58                   	pop    %eax
4076cf:	89 45 e8             	mov    %eax,-0x18(%ebp)
4076d2:	8b 45 ec             	mov    -0x14(%ebp),%eax
4076d5:	0f b7 8c 41 98 01 00 	movzwl 0x198(%ecx,%eax,2),%ecx
4076dc:	00
4076dd:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4076e0:	81 ff 00 00 00 01    	cmp    $0x1000000,%edi
4076e6:	73 17                	jae    0x4076ff
4076e8:	3b da                	cmp    %edx,%ebx
4076ea:	0f 83 34 03 00 00    	jae    0x407a24
4076f0:	0f b6 03             	movzbl (%ebx),%eax
4076f3:	c1 e6 08             	shl    $0x8,%esi
4076f6:	0b f0                	or     %eax,%esi
4076f8:	c1 e7 08             	shl    $0x8,%edi
4076fb:	8b 45 ec             	mov    -0x14(%ebp),%eax
4076fe:	43                   	inc    %ebx
4076ff:	8b cf                	mov    %edi,%ecx
407701:	c1 e9 0b             	shr    $0xb,%ecx
407704:	0f af 4d e0          	imul   -0x20(%ebp),%ecx
407708:	3b f1                	cmp    %ecx,%esi
40770a:	73 5c                	jae    0x407768
40770c:	8b 55 f8             	mov    -0x8(%ebp),%edx
40770f:	83 c0 0f             	add    $0xf,%eax
407712:	c1 e0 04             	shl    $0x4,%eax
407715:	8b f9                	mov    %ecx,%edi
407717:	03 45 f4             	add    -0xc(%ebp),%eax
40771a:	0f b7 04 42          	movzwl (%edx,%eax,2),%eax
40771e:	8b 55 fc             	mov    -0x4(%ebp),%edx
407721:	89 45 e0             	mov    %eax,-0x20(%ebp)
407724:	81 f9 00 00 00 01    	cmp    $0x1000000,%ecx
40772a:	73 14                	jae    0x407740
40772c:	3b da                	cmp    %edx,%ebx
40772e:	0f 83 f0 02 00 00    	jae    0x407a24
407734:	0f b6 03             	movzbl (%ebx),%eax
407737:	c1 e6 08             	shl    $0x8,%esi
40773a:	c1 e7 08             	shl    $0x8,%edi
40773d:	0b f0                	or     %eax,%esi
40773f:	43                   	inc    %ebx
407740:	8b c7                	mov    %edi,%eax
407742:	c1 e8 0b             	shr    $0xb,%eax
407745:	0f af 45 e0          	imul   -0x20(%ebp),%eax
407749:	3b f0                	cmp    %eax,%esi
40774b:	0f 83 8c 00 00 00    	jae    0x4077dd
407751:	3d 00 00 00 01       	cmp    $0x1000000,%eax
407756:	73 08                	jae    0x407760
407758:	3b da                	cmp    %edx,%ebx
40775a:	0f 83 c4 02 00 00    	jae    0x407a24
407760:	6a 03                	push   $0x3
407762:	58                   	pop    %eax
407763:	e9 c2 02 00 00       	jmp    0x407a2a
407768:	2b f9                	sub    %ecx,%edi
40776a:	2b f1                	sub    %ecx,%esi
40776c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40776f:	0f b7 8c 41 b0 01 00 	movzwl 0x1b0(%ecx,%eax,2),%ecx
407776:	00
407777:	81 ff 00 00 00 01    	cmp    $0x1000000,%edi
40777d:	73 14                	jae    0x407793
40777f:	3b da                	cmp    %edx,%ebx
407781:	0f 83 9d 02 00 00    	jae    0x407a24
407787:	0f b6 03             	movzbl (%ebx),%eax
40778a:	c1 e6 08             	shl    $0x8,%esi
40778d:	c1 e7 08             	shl    $0x8,%edi
407790:	0b f0                	or     %eax,%esi
407792:	43                   	inc    %ebx
407793:	8b c7                	mov    %edi,%eax
407795:	c1 e8 0b             	shr    $0xb,%eax
407798:	0f af c1             	imul   %ecx,%eax
40779b:	3b f0                	cmp    %eax,%esi
40779d:	72 3a                	jb     0x4077d9
40779f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4077a2:	2b f8                	sub    %eax,%edi
4077a4:	2b f0                	sub    %eax,%esi
4077a6:	8b 45 ec             	mov    -0x14(%ebp),%eax
4077a9:	0f b7 8c 41 c8 01 00 	movzwl 0x1c8(%ecx,%eax,2),%ecx
4077b0:	00
4077b1:	81 ff 00 00 00 01    	cmp    $0x1000000,%edi
4077b7:	73 14                	jae    0x4077cd
4077b9:	3b da                	cmp    %edx,%ebx
4077bb:	0f 83 63 02 00 00    	jae    0x407a24
4077c1:	0f b6 03             	movzbl (%ebx),%eax
4077c4:	c1 e6 08             	shl    $0x8,%esi
4077c7:	c1 e7 08             	shl    $0x8,%edi
4077ca:	0b f0                	or     %eax,%esi
4077cc:	43                   	inc    %ebx
4077cd:	8b c7                	mov    %edi,%eax
4077cf:	c1 e8 0b             	shr    $0xb,%eax
4077d2:	0f af c1             	imul   %ecx,%eax
4077d5:	3b f0                	cmp    %eax,%esi
4077d7:	73 04                	jae    0x4077dd
4077d9:	8b f8                	mov    %eax,%edi
4077db:	eb 04                	jmp    0x4077e1
4077dd:	2b f8                	sub    %eax,%edi
4077df:	2b f0                	sub    %eax,%esi
4077e1:	c7 45 e0 0c 00 00 00 	movl   $0xc,-0x20(%ebp)
4077e8:	b8 68 0a 00 00       	mov    $0xa68,%eax
4077ed:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4077f0:	03 c8                	add    %eax,%ecx
4077f2:	0f b7 01             	movzwl (%ecx),%eax
4077f5:	89 45 ec             	mov    %eax,-0x14(%ebp)
4077f8:	81 ff 00 00 00 01    	cmp    $0x1000000,%edi
4077fe:	73 14                	jae    0x407814
407800:	3b da                	cmp    %edx,%ebx
407802:	0f 83 1c 02 00 00    	jae    0x407a24
407808:	0f b6 03             	movzbl (%ebx),%eax
40780b:	c1 e6 08             	shl    $0x8,%esi
40780e:	c1 e7 08             	shl    $0x8,%edi
407811:	0b f0                	or     %eax,%esi
407813:	43                   	inc    %ebx
407814:	8b c7                	mov    %edi,%eax
407816:	c1 e8 0b             	shr    $0xb,%eax
407819:	0f af 45 ec          	imul   -0x14(%ebp),%eax
40781d:	3b f0                	cmp    %eax,%esi
40781f:	73 16                	jae    0x407837