4093c8:	e8 4c 3a 00 00       	call   0x40ce19
4093cd:	8b f8                	mov    %eax,%edi
4093cf:	89 7e 08             	mov    %edi,0x8(%esi)
4093d2:	eb ac                	jmp    0x409380
4093d4:	6a 0a                	push   $0xa
4093d6:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
4093dc:	50                   	push   %eax
4093dd:	ff 36                	push   (%esi)
4093df:	e8 73 81 01 00       	call   0x421557
4093e4:	83 c4 0c             	add    $0xc,%esp
4093e7:	eb ca                	jmp    0x4093b3
4093e9:	cc                   	int3
4093ea:	cc                   	int3
4093eb:	cc                   	int3
4093ec:	cc                   	int3
4093ed:	cc                   	int3
4093ee:	cc                   	int3
4093ef:	cc                   	int3
4093f0:	55                   	push   %ebp
4093f1:	8b ec                	mov    %esp,%ebp
4093f3:	83 ec 68             	sub    $0x68,%esp
4093f6:	53                   	push   %ebx
4093f7:	56                   	push   %esi
4093f8:	8b f1                	mov    %ecx,%esi
4093fa:	57                   	push   %edi
4093fb:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
4093ff:	89 75 ec             	mov    %esi,-0x14(%ebp)
409402:	0f 84 56 95 06 00    	je     0x47295e
409408:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40940c:	0f 84 4c 95 06 00    	je     0x47295e
409412:	8b 7d 10             	mov    0x10(%ebp),%edi
409415:	33 c0                	xor    %eax,%eax
409417:	6a ff                	push   $0xffffffff
409419:	50                   	push   %eax
40941a:	8b cf                	mov    %edi,%ecx
40941c:	c6 45 fb 00          	movb   $0x0,-0x5(%ebp)
409420:	89 45 e8             	mov    %eax,-0x18(%ebp)
409423:	e8 63 1d 00 00       	call   0x40b18b
409428:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40942c:	75 04                	jne    0x409432
40942e:	c6 45 fb 01          	movb   $0x1,-0x5(%ebp)
409432:	8d 4d bc             	lea    -0x44(%ebp),%ecx
409435:	e8 bd 43 00 00       	call   0x40d7f7
40943a:	8d 4d cc             	lea    -0x34(%ebp),%ecx
40943d:	e8 b5 43 00 00       	call   0x40d7f7
409442:	33 d2                	xor    %edx,%edx
409444:	33 db                	xor    %ebx,%ebx
409446:	89 55 f0             	mov    %edx,-0x10(%ebp)
409449:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40944c:	8d 64 24 00          	lea    0x0(%esp),%esp
409450:	80 7d fb 00          	cmpb   $0x0,-0x5(%ebp)
409454:	0f 84 5d 91 06 00    	je     0x4725b7
40945a:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
40945e:	0f 84 10 02 00 00    	je     0x409674
409464:	80 7e 10 00          	cmpb   $0x0,0x10(%esi)
409468:	0f 84 06 02 00 00    	je     0x409674
40946e:	83 fa ff             	cmp    $0xffffffff,%edx
409471:	0f 84 fd 01 00 00    	je     0x409674
409477:	8b 4e 28             	mov    0x28(%esi),%ecx
40947a:	3b d1                	cmp    %ecx,%edx
40947c:	0f 8f f2 01 00 00    	jg     0x409674
409482:	ff 76 30             	push   0x30(%esi)
409485:	8b 46 40             	mov    0x40(%esi),%eax
409488:	ff 76 2c             	push   0x2c(%esi)
40948b:	0b 46 38             	or     0x38(%esi),%eax
40948e:	50                   	push   %eax
40948f:	52                   	push   %edx
409490:	51                   	push   %ecx
409491:	ff 36                	push   (%esi)
409493:	8b 4e 24             	mov    0x24(%esi),%ecx
409496:	e8 c5 06 00 00       	call   0x409b60
40949b:	8b c8                	mov    %eax,%ecx
40949d:	83 c4 18             	add    $0x18,%esp
4094a0:	89 4e 34             	mov    %ecx,0x34(%esi)
4094a3:	85 c9                	test   %ecx,%ecx
4094a5:	0f 8e ba 01 00 00    	jle    0x409665
4094ab:	8b 46 2c             	mov    0x2c(%esi),%eax
4094ae:	8b 50 04             	mov    0x4(%eax),%edx
4094b1:	c7 46 38 00 00 00 00 	movl   $0x0,0x38(%esi)
4094b8:	8b 38                	mov    (%eax),%edi
4094ba:	3b 78 04             	cmp    0x4(%eax),%edi
4094bd:	89 7d e0             	mov    %edi,-0x20(%ebp)
4094c0:	8b 7d 10             	mov    0x10(%ebp),%edi
4094c3:	0f 84 fd 90 06 00    	je     0x4725c6
4094c9:	89 55 f0             	mov    %edx,-0x10(%ebp)
4094cc:	85 c9                	test   %ecx,%ecx
4094ce:	0f 84 a0 01 00 00    	je     0x409674
4094d4:	8b 46 2c             	mov    0x2c(%esi),%eax
4094d7:	8b 18                	mov    (%eax),%ebx
4094d9:	8b 45 f4             	mov    -0xc(%ebp),%eax
4094dc:	2b d8                	sub    %eax,%ebx
4094de:	0f 84 2a 01 00 00    	je     0x40960e
4094e4:	8b 4e 04             	mov    0x4(%esi),%ecx
4094e7:	3b c1                	cmp    %ecx,%eax
4094e9:	0f 83 1f 01 00 00    	jae    0x40960e
4094ef:	83 fb ff             	cmp    $0xffffffff,%ebx
4094f2:	0f 84 b6 01 00 00    	je     0x4096ae
4094f8:	03 c3                	add    %ebx,%eax
4094fa:	3b c1                	cmp    %ecx,%eax
4094fc:	0f 87 a9 01 00 00    	ja     0x4096ab
409502:	8b 4d d8             	mov    -0x28(%ebp),%ecx
409505:	8b 01                	mov    (%ecx),%eax
409507:	83 f8 01             	cmp    $0x1,%eax
40950a:	0f 8f f0 90 06 00    	jg     0x472600
409510:	8d 43 01             	lea    0x1(%ebx),%eax
409513:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
409516:	0f 82 06 01 00 00    	jb     0x409622
40951c:	8b 45 ec             	mov    -0x14(%ebp),%eax
40951f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
409522:	8b 00                	mov    (%eax),%eax
409524:	8d 34 1b             	lea    (%ebx,%ebx,1),%esi
409527:	56                   	push   %esi
409528:	8d 04 48             	lea    (%eax,%ecx,2),%eax
40952b:	50                   	push   %eax
40952c:	ff 75 cc             	push   -0x34(%ebp)
40952f:	89 5d d0             	mov    %ebx,-0x30(%ebp)
409532:	e8 49 59 01 00       	call   0x41ee80
409537:	8b 45 cc             	mov    -0x34(%ebp),%eax
40953a:	83 c4 0c             	add    $0xc,%esp
40953d:	33 c9                	xor    %ecx,%ecx
40953f:	66 89 0c 06          	mov    %cx,(%esi,%eax,1)
409543:	8b 75 ec             	mov    -0x14(%ebp),%esi
409546:	8d 45 cc             	lea    -0x34(%ebp),%eax
409549:	3b f8                	cmp    %eax,%edi
40954b:	0f 84 e4 90 06 00    	je     0x472635
409551:	85 db                	test   %ebx,%ebx
409553:	74 43                	je     0x409598
409555:	8b 4f 0c             	mov    0xc(%edi),%ecx
409558:	8b 01                	mov    (%ecx),%eax
40955a:	83 f8 01             	cmp    $0x1,%eax
40955d:	0f 8f f3 90 06 00    	jg     0x472656
409563:	8b 47 04             	mov    0x4(%edi),%eax
409566:	40                   	inc    %eax
409567:	03 c3                	add    %ebx,%eax
409569:	39 47 08             	cmp    %eax,0x8(%edi)
40956c:	0f 82 38 91 06 00    	jb     0x4726aa
409572:	8b 4f 04             	mov    0x4(%edi),%ecx
409575:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
409578:	50                   	push   %eax
409579:	8b 07                	mov    (%edi),%eax
40957b:	ff 75 cc             	push   -0x34(%ebp)
40957e:	8d 04 48             	lea    (%eax,%ecx,2),%eax
409581:	50                   	push   %eax
409582:	e8 f9 58 01 00       	call   0x41ee80
409587:	01 5f 04             	add    %ebx,0x4(%edi)
40958a:	8b 4f 04             	mov    0x4(%edi),%ecx
40958d:	8b 07                	mov    (%edi),%eax
40958f:	83 c4 0c             	add    $0xc,%esp
409592:	33 d2                	xor    %edx,%edx
409594:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
409598:	8d 45 bc             	lea    -0x44(%ebp),%eax
40959b:	50                   	push   %eax
40959c:	ff 75 08             	push   0x8(%ebp)
40959f:	8b ce                	mov    %esi,%ecx
4095a1:	e8 aa 19 00 00       	call   0x40af50
4095a6:	01 45 e8             	add    %eax,-0x18(%ebp)
4095a9:	8d 45 bc             	lea    -0x44(%ebp),%eax
4095ac:	3b f8                	cmp    %eax,%edi
4095ae:	0f 84 17 92 06 00    	je     0x4727cb
4095b4:	8b 5d c0             	mov    -0x40(%ebp),%ebx
4095b7:	85 db                	test   %ebx,%ebx
4095b9:	74 43                	je     0x4095fe
4095bb:	8b 4f 0c             	mov    0xc(%edi),%ecx
4095be:	8b 01                	mov    (%ecx),%eax
4095c0:	83 f8 01             	cmp    $0x1,%eax
4095c3:	0f 8f 23 92 06 00    	jg     0x4727ec
4095c9:	8b 47 04             	mov    0x4(%edi),%eax
4095cc:	40                   	inc    %eax
4095cd:	03 c3                	add    %ebx,%eax
4095cf:	39 47 08             	cmp    %eax,0x8(%edi)
4095d2:	0f 82 68 92 06 00    	jb     0x472840
4095d8:	8b 4f 04             	mov    0x4(%edi),%ecx
4095db:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
4095de:	50                   	push   %eax
4095df:	8b 07                	mov    (%edi),%eax
4095e1:	ff 75 bc             	push   -0x44(%ebp)
4095e4:	8d 04 48             	lea    (%eax,%ecx,2),%eax
4095e7:	50                   	push   %eax
4095e8:	e8 93 58 01 00       	call   0x41ee80
4095ed:	01 5f 04             	add    %ebx,0x4(%edi)
4095f0:	8b 4f 04             	mov    0x4(%edi),%ecx
4095f3:	8b 07                	mov    (%edi),%eax
4095f5:	83 c4 0c             	add    $0xc,%esp
4095f8:	33 d2                	xor    %edx,%edx
4095fa:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
4095fe:	8b 55 f0             	mov    -0x10(%ebp),%edx
409601:	ff 4d 0c             	decl   0xc(%ebp)
409604:	8b da                	mov    %edx,%ebx
409606:	89 55 f4             	mov    %edx,-0xc(%ebp)
409609:	e9 42 fe ff ff       	jmp    0x409450
40960e:	6a ff                	push   $0xffffffff
409610:	6a 00                	push   $0x0
409612:	8d 4d cc             	lea    -0x34(%ebp),%ecx
409615:	e8 71 1b 00 00       	call   0x40b18b
40961a:	8b 5d d0             	mov    -0x30(%ebp),%ebx
40961d:	e9 24 ff ff ff       	jmp    0x409546
409622:	50                   	push   %eax
409623:	e8 ce d4 ff ff       	call   0x406af6
409628:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40962b:	8b 45 cc             	mov    -0x34(%ebp),%eax
40962e:	85 c0                	test   %eax,%eax
409630:	74 09                	je     0x40963b
409632:	50                   	push   %eax
409633:	e8 26 5f 01 00       	call   0x41f55e
409638:	83 c4 04             	add    $0x4,%esp
40963b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40963e:	33 c9                	xor    %ecx,%ecx
409640:	ba 02 00 00 00       	mov    $0x2,%edx
409645:	f7 e2                	mul    %edx
409647:	0f 90 c1             	seto   %cl
40964a:	f7 d9                	neg    %ecx
40964c:	0b c8                	or     %eax,%ecx
40964e:	51                   	push   %ecx
40964f:	e8 96 5e 01 00       	call   0x41f4ea
409654:	83 c4 04             	add    $0x4,%esp
409657:	33 c9                	xor    %ecx,%ecx
409659:	66 89 0c 58          	mov    %cx,(%eax,%ebx,2)
40965d:	89 45 cc             	mov    %eax,-0x34(%ebp)
409660:	e9 b7 fe ff ff       	jmp    0x40951c
409665:	83 f9 ff             	cmp    $0xffffffff,%ecx
409668:	75 0a                	jne    0x409674
40966a:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
40966e:	0f 85 6e 8f 06 00    	jne    0x4725e2
409674:	8b 46 28             	mov    0x28(%esi),%eax
409677:	2b c3                	sub    %ebx,%eax
409679:	50                   	push   %eax
40967a:	53                   	push   %ebx
40967b:	56                   	push   %esi
40967c:	8d 4d cc             	lea    -0x34(%ebp),%ecx
40967f:	e8 65 d3 ff ff       	call   0x4069e9
409684:	8d 45 cc             	lea    -0x34(%ebp),%eax
409687:	50                   	push   %eax
409688:	8b cf                	mov    %edi,%ecx
40968a:	e8 7e ba ff ff       	call   0x40510d
40968f:	8d 4d cc             	lea    -0x34(%ebp),%ecx
409692:	e8 a0 34 00 00       	call   0x40cb37
409697:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40969a:	e8 98 34 00 00       	call   0x40cb37
40969f:	8b 45 e8             	mov    -0x18(%ebp),%eax
4096a2:	5f                   	pop    %edi
4096a3:	5e                   	pop    %esi
4096a4:	5b                   	pop    %ebx
4096a5:	8b e5                	mov    %ebp,%esp
4096a7:	5d                   	pop    %ebp
4096a8:	c2 0c 00             	ret    $0xc
4096ab:	8b 45 f4             	mov    -0xc(%ebp),%eax
4096ae:	8b d9                	mov    %ecx,%ebx
4096b0:	2b d8                	sub    %eax,%ebx
4096b2:	e9 4b fe ff ff       	jmp    0x409502
4096b7:	cc                   	int3
4096b8:	cc                   	int3
4096b9:	cc                   	int3
4096ba:	cc                   	int3
4096bb:	cc                   	int3
4096bc:	cc                   	int3
4096bd:	cc                   	int3
4096be:	cc                   	int3
4096bf:	cc                   	int3
4096c0:	55                   	push   %ebp
4096c1:	8b ec                	mov    %esp,%ebp
4096c3:	83 e4 f8             	and    $0xfffffff8,%esp
4096c6:	81 ec ac 00 00 00    	sub    $0xac,%esp
4096cc:	53                   	push   %ebx
4096cd:	56                   	push   %esi
4096ce:	89 4c 24 10          	mov    %ecx,0x10(%esp)
4096d2:	57                   	push   %edi
4096d3:	8d 4c 24 70          	lea    0x70(%esp),%ecx
4096d7:	e8 cb 8f ff ff       	call   0x4026a7
4096dc:	8b 7d 08             	mov    0x8(%ebp),%edi
4096df:	8b 47 04             	mov    0x4(%edi),%eax
4096e2:	8b 30                	mov    (%eax),%esi
4096e4:	8b ce                	mov    %esi,%ecx
4096e6:	e8 81 fc ff ff       	call   0x40936c
4096eb:	8b 47 04             	mov    0x4(%edi),%eax
4096ee:	8b 5e 08             	mov    0x8(%esi),%ebx
4096f1:	8b 70 04             	mov    0x4(%eax),%esi
4096f4:	8b ce                	mov    %esi,%ecx
4096f6:	e8 71 fc ff ff       	call   0x40936c
4096fb:	8b 46 08             	mov    0x8(%esi),%eax
4096fe:	8d 4c 24 28          	lea    0x28(%esp),%ecx
409702:	89 44 24 38          	mov    %eax,0x38(%esp)
409706:	33 f6                	xor    %esi,%esi
409708:	c7 44 24 0c 01 00 00 	movl   $0x1,0xc(%esp)
40970f:	00
409710:	e8 e2 40 00 00       	call   0x40d7f7
409715:	83 7f 08 03          	cmpl   $0x3,0x8(%edi)
409719:	72 1e                	jb     0x409739
40971b:	8b 47 04             	mov    0x4(%edi),%eax
40971e:	8b 48 08             	mov    0x8(%eax),%ecx
409721:	e8 60 3b 00 00       	call   0x40d286
409726:	8b f0                	mov    %eax,%esi
409728:	85 f6                	test   %esi,%esi
40972a:	0f 88 e3 03 00 00    	js     0x409b13
409730:	83 fe 04             	cmp    $0x4,%esi
409733:	0f 8f da 03 00 00    	jg     0x409b13
409739:	83 7f 08 04          	cmpl   $0x4,0x8(%edi)
40973d:	0f 83 63 2e 07 00    	jae    0x47c5a6
409743:	8b 44 24 0c          	mov    0xc(%esp),%eax
409747:	83 f8 01             	cmp    $0x1,%eax
40974a:	0f 8c ca 03 00 00    	jl     0x409b1a
409750:	ff 74 24 38          	push   0x38(%esp)
409754:	48                   	dec    %eax
409755:	8d 4c 24 74          	lea    0x74(%esp),%ecx
409759:	89 44 24 10          	mov    %eax,0x10(%esp)
40975d:	e8 19 d7 ff ff       	call   0x406e7b
409762:	8b f8                	mov    %eax,%edi
409764:	85 ff                	test   %edi,%edi
409766:	0f 85 4a 2e 07 00    	jne    0x47c5b6
40976c:	53                   	push   %ebx
40976d:	8d 4c 24 74          	lea    0x74(%esp),%ecx
409771:	e8 e8 d6 ff ff       	call   0x406e5e
409776:	85 f6                	test   %esi,%esi
409778:	0f 84 7a 2e 07 00    	je     0x47c5f8
40977e:	83 fe 01             	cmp    $0x1,%esi
409781:	0f 84 b8 2e 07 00    	je     0x47c63f
409787:	83 fe 02             	cmp    $0x2,%esi
40978a:	0f 84 6b 2f 07 00    	je     0x47c6fb
409790:	83 fe 03             	cmp    $0x3,%esi
409793:	0f 85 a2 30 07 00    	jne    0x47c83b
409799:	8b 5c 24 34          	mov    0x34(%esp),%ebx
40979d:	33 c0                	xor    %eax,%eax
40979f:	c7 44 24 18 04 dc 49 	movl   $0x49dc04,0x18(%esp)
4097a6:	00
4097a7:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
4097ab:	89 44 24 20          	mov    %eax,0x20(%esp)
4097af:	89 44 24 3c          	mov    %eax,0x3c(%esp)
4097b3:	89 44 24 24          	mov    %eax,0x24(%esp)
4097b7:	8b 54 24 0c          	mov    0xc(%esp),%edx
4097bb:	8b b4 24 98 00 00 00 	mov    0x98(%esp),%esi
4097c2:	eb 0c                	jmp    0x4097d0
4097c4:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4097cb:	eb 03                	jmp    0x4097d0
4097cd:	8d 49 00             	lea    0x0(%ecx),%ecx
4097d0:	8b 8c 24 94 00 00 00 	mov    0x94(%esp),%ecx
4097d7:	85 c9                	test   %ecx,%ecx
4097d9:	0f 84 d0 02 00 00    	je     0x409aaf
4097df:	80 bc 24 80 00 00 00 	cmpb   $0x0,0x80(%esp)
4097e6:	00
4097e7:	0f 84 c2 02 00 00    	je     0x409aaf
4097ed:	83 fa ff             	cmp    $0xffffffff,%edx
4097f0:	0f 84 b9 02 00 00    	je     0x409aaf
4097f6:	3b d6                	cmp    %esi,%edx
4097f8:	0f 8f b1 02 00 00    	jg     0x409aaf
4097fe:	ff b4 24 a0 00 00 00 	push   0xa0(%esp)
409805:	8b 84 24 ac 00 00 00 	mov    0xac(%esp),%eax
40980c:	ff b4 24 a0 00 00 00 	push   0xa0(%esp)
409813:	0b 84 24 b8 00 00 00 	or     0xb8(%esp),%eax
40981a:	50                   	push   %eax
40981b:	52                   	push   %edx
40981c:	56                   	push   %esi