4053d8:	47                   	inc    %edi
4053d9:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4053dc:	ff 15 00 23 41 00    	call   *0x412300
4053e2:	85 c0                	test   %eax,%eax
4053e4:	75 5d                	jne    0x405443
4053e6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4053e9:	6a 00                	push   $0x0
4053eb:	57                   	push   %edi
4053ec:	6a 02                	push   $0x2
4053ee:	8b 70 18             	mov    0x18(%eax),%esi
4053f1:	58                   	pop    %eax
4053f2:	50                   	push   %eax
4053f3:	ff 15 18 23 41 00    	call   *0x412318
4053f9:	89 43 0c             	mov    %eax,0xc(%ebx)
4053fc:	83 f8 ff             	cmp    $0xffffffff,%eax
4053ff:	74 42                	je     0x405443
405401:	8b 46 04             	mov    0x4(%esi),%eax
405404:	8d b3 c8 01 00 00    	lea    0x1c8(%ebx),%esi
40540a:	6a 02                	push   $0x2
40540c:	89 83 cc 01 00 00    	mov    %eax,0x1cc(%ebx)
405412:	58                   	pop    %eax
405413:	ff 75 0c             	push   0xc(%ebp)
405416:	66 89 06             	mov    %ax,(%esi)
405419:	ff 15 0c 23 41 00    	call   *0x41230c
40541f:	ff 75 fc             	push   -0x4(%ebp)
405422:	66 89 83 ca 01 00 00 	mov    %ax,0x1ca(%ebx)
405429:	ff 15 08 23 41 00    	call   *0x412308
40542f:	6a 10                	push   $0x10
405431:	56                   	push   %esi
405432:	ff 73 0c             	push   0xc(%ebx)
405435:	ff 15 14 23 41 00    	call   *0x412314
40543b:	83 f8 ff             	cmp    $0xffffffff,%eax
40543e:	75 16                	jne    0x405456
405440:	09 43 0c             	or     %eax,0xc(%ebx)
405443:	33 ff                	xor    %edi,%edi
405445:	8b 4d 08             	mov    0x8(%ebp),%ecx
405448:	e8 e0 05 00 00       	call   0x405a2d
40544d:	8b c7                	mov    %edi,%eax
40544f:	5f                   	pop    %edi
405450:	5e                   	pop    %esi
405451:	5b                   	pop    %ebx
405452:	c9                   	leave
405453:	c2 08 00             	ret    $0x8
405456:	ff b3 d8 01 00 00    	push   0x1d8(%ebx)
40545c:	89 7b 08             	mov    %edi,0x8(%ebx)
40545f:	ff 15 50 21 41 00    	call   *0x412150
405465:	eb de                	jmp    0x405445
405467:	56                   	push   %esi
405468:	57                   	push   %edi
405469:	8b f1                	mov    %ecx,%esi
40546b:	e8 80 db ff ff       	call   0x402ff0
405470:	33 ff                	xor    %edi,%edi
405472:	89 7e 10             	mov    %edi,0x10(%esi)
405475:	89 7e 14             	mov    %edi,0x14(%esi)
405478:	51                   	push   %ecx
405479:	8d 8e d8 01 00 00    	lea    0x1d8(%esi),%ecx
40547f:	89 7e 30             	mov    %edi,0x30(%esi)
405482:	89 7e 34             	mov    %edi,0x34(%esi)
405485:	e8 ac 8d 00 00       	call   0x40e236
40548a:	8d 46 38             	lea    0x38(%esi),%eax
40548d:	50                   	push   %eax
40548e:	6a 02                	push   $0x2
405490:	ff 15 e0 22 41 00    	call   *0x4122e0
405496:	83 4e 0c ff          	orl    $0xffffffff,0xc(%esi)
40549a:	8b c6                	mov    %esi,%eax
40549c:	89 7e 18             	mov    %edi,0x18(%esi)
40549f:	89 7e 24             	mov    %edi,0x24(%esi)
4054a2:	5f                   	pop    %edi
4054a3:	5e                   	pop    %esi
4054a4:	c3                   	ret
4054a5:	55                   	push   %ebp
4054a6:	8b ec                	mov    %esp,%ebp
4054a8:	51                   	push   %ecx
4054a9:	51                   	push   %ecx
4054aa:	56                   	push   %esi
4054ab:	8b f1                	mov    %ecx,%esi
4054ad:	57                   	push   %edi
4054ae:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
4054b2:	8d 7e 08             	lea    0x8(%esi),%edi
4054b5:	75 29                	jne    0x4054e0
4054b7:	8d 4e 44             	lea    0x44(%esi),%ecx
4054ba:	8b 01                	mov    (%ecx),%eax
4054bc:	ff 30                	push   (%eax)
4054be:	8d 45 f8             	lea    -0x8(%ebp),%eax
4054c1:	6a 04                	push   $0x4
4054c3:	50                   	push   %eax
4054c4:	e8 bc d7 ff ff       	call   0x402c85
4054c9:	50                   	push   %eax
4054ca:	8b cf                	mov    %edi,%ecx
4054cc:	e8 fb d7 ff ff       	call   0x402ccc
4054d1:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4054d4:	e8 8d d9 ff ff       	call   0x402e66
4054d9:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
4054e0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4054e3:	57                   	push   %edi
4054e4:	e8 90 d9 ff ff       	call   0x402e79
4054e9:	8b 45 08             	mov    0x8(%ebp),%eax
4054ec:	5f                   	pop    %edi
4054ed:	5e                   	pop    %esi
4054ee:	c9                   	leave
4054ef:	c2 04 00             	ret    $0x4
4054f2:	55                   	push   %ebp
4054f3:	8b ec                	mov    %esp,%ebp
4054f5:	83 ec 10             	sub    $0x10,%esp
4054f8:	56                   	push   %esi
4054f9:	8b f1                	mov    %ecx,%esi
4054fb:	8d 4e 44             	lea    0x44(%esi),%ecx
4054fe:	8b 01                	mov    (%ecx),%eax
405500:	8b 10                	mov    (%eax),%edx
405502:	8b 46 48             	mov    0x48(%esi),%eax
405505:	2b c2                	sub    %edx,%eax
405507:	83 e8 04             	sub    $0x4,%eax
40550a:	50                   	push   %eax
40550b:	8d 42 04             	lea    0x4(%edx),%eax
40550e:	50                   	push   %eax
40550f:	8d 45 f4             	lea    -0xc(%ebp),%eax
405512:	50                   	push   %eax
405513:	e8 6d d7 ff ff       	call   0x402c85
405518:	51                   	push   %ecx
405519:	51                   	push   %ecx
40551a:	8d 45 f4             	lea    -0xc(%ebp),%eax
40551d:	8b cc                	mov    %esp,%ecx
40551f:	50                   	push   %eax
405520:	e8 54 d9 ff ff       	call   0x402e79
405525:	51                   	push   %ecx
405526:	51                   	push   %ecx
405527:	54                   	push   %esp
405528:	8b ce                	mov    %esi,%ecx
40552a:	e8 76 ff ff ff       	call   0x4054a5
40552f:	8b 4d 08             	mov    0x8(%ebp),%ecx
405532:	e8 fb 06 00 00       	call   0x405c32
405537:	83 c4 10             	add    $0x10,%esp
40553a:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40553d:	e8 24 d9 ff ff       	call   0x402e66
405542:	8b 45 08             	mov    0x8(%ebp),%eax
405545:	5e                   	pop    %esi
405546:	c9                   	leave
405547:	c2 04 00             	ret    $0x4
40554a:	8b 41 40             	mov    0x40(%ecx),%eax
40554d:	c3                   	ret
40554e:	8b 41 3c             	mov    0x3c(%ecx),%eax
405551:	c3                   	ret
405552:	8b 41 38             	mov    0x38(%ecx),%eax
405555:	c3                   	ret
405556:	55                   	push   %ebp
405557:	8b ec                	mov    %esp,%ebp
405559:	8d 41 30             	lea    0x30(%ecx),%eax
40555c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40555f:	50                   	push   %eax
405560:	e8 f5 de ff ff       	call   0x40345a
405565:	8b 45 08             	mov    0x8(%ebp),%eax
405568:	5d                   	pop    %ebp
405569:	c2 04 00             	ret    $0x4
40556c:	55                   	push   %ebp
40556d:	8b ec                	mov    %esp,%ebp
40556f:	8d 41 24             	lea    0x24(%ecx),%eax
405572:	8b 4d 08             	mov    0x8(%ebp),%ecx
405575:	50                   	push   %eax
405576:	e8 df de ff ff       	call   0x40345a
40557b:	8b 45 08             	mov    0x8(%ebp),%eax
40557e:	5d                   	pop    %ebp
40557f:	c2 04 00             	ret    $0x4
405582:	8b 41 20             	mov    0x20(%ecx),%eax
405585:	c3                   	ret
405586:	55                   	push   %ebp
405587:	8b ec                	mov    %esp,%ebp
405589:	8d 41 1c             	lea    0x1c(%ecx),%eax
40558c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40558f:	50                   	push   %eax
405590:	e8 c5 de ff ff       	call   0x40345a
405595:	8b 45 08             	mov    0x8(%ebp),%eax
405598:	5d                   	pop    %ebp
405599:	c2 04 00             	ret    $0x4
40559c:	8b 41 18             	mov    0x18(%ecx),%eax
40559f:	c3                   	ret
4055a0:	55                   	push   %ebp
4055a1:	8b ec                	mov    %esp,%ebp
4055a3:	81 ec 94 00 00 00    	sub    $0x94,%esp
4055a9:	53                   	push   %ebx
4055aa:	56                   	push   %esi
4055ab:	57                   	push   %edi
4055ac:	8b f9                	mov    %ecx,%edi
4055ae:	68 f4 01 00 00       	push   $0x1f4
4055b3:	89 7d fc             	mov    %edi,-0x4(%ebp)
4055b6:	ff 15 e4 21 41 00    	call   *0x4121e4
4055bc:	8d 4d a0             	lea    -0x60(%ebp),%ecx
4055bf:	e8 29 8e 00 00       	call   0x40e3ed
4055c4:	e8 2b a6 00 00       	call   0x40fbf4
4055c9:	50                   	push   %eax
4055ca:	8d 4d a0             	lea    -0x60(%ebp),%ecx
4055cd:	e8 12 8d 00 00       	call   0x40e2e4
4055d2:	68 08 28 41 00       	push   $0x412808
4055d7:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4055da:	e8 0d dc ff ff       	call   0x4031ec
4055df:	50                   	push   %eax
4055e0:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
4055e6:	50                   	push   %eax
4055e7:	8d 4d a0             	lea    -0x60(%ebp),%ecx
4055ea:	e8 68 8c 00 00       	call   0x40e257
4055ef:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4055f2:	e8 36 04 00 00       	call   0x405a2d
4055f7:	8d 45 98             	lea    -0x68(%ebp),%eax
4055fa:	50                   	push   %eax
4055fb:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4055fe:	e8 76 d8 ff ff       	call   0x402e79
405603:	8d 45 f4             	lea    -0xc(%ebp),%eax
405606:	50                   	push   %eax
405607:	8d 4f 44             	lea    0x44(%edi),%ecx
40560a:	e8 bd d6 ff ff       	call   0x402ccc
40560f:	8d 4d f4             	lea    -0xc(%ebp),%ecx
405612:	e8 4f d8 ff ff       	call   0x402e66
405617:	8d 45 ec             	lea    -0x14(%ebp),%eax
40561a:	8b cf                	mov    %edi,%ecx
40561c:	50                   	push   %eax
40561d:	e8 d0 fe ff ff       	call   0x4054f2
405622:	8b 5d ec             	mov    -0x14(%ebp),%ebx
405625:	8d 4d f8             	lea    -0x8(%ebp),%ecx
405628:	8b 33                	mov    (%ebx),%esi
40562a:	8d 53 04             	lea    0x4(%ebx),%edx
40562d:	56                   	push   %esi
40562e:	e8 e3 a5 00 00       	call   0x40fc16
405633:	59                   	pop    %ecx
405634:	50                   	push   %eax
405635:	8d 4f 10             	lea    0x10(%edi),%ecx
405638:	e8 27 dc ff ff       	call   0x403264
40563d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405640:	e8 e8 03 00 00       	call   0x405a2d
405645:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405648:	8d 7e 04             	lea    0x4(%esi),%edi
40564b:	8b 04 3b             	mov    (%ebx,%edi,1),%eax
40564e:	89 41 14             	mov    %eax,0x14(%ecx)
405651:	8d 4d f8             	lea    -0x8(%ebp),%ecx
405654:	8b 74 3b 04          	mov    0x4(%ebx,%edi,1),%esi
405658:	83 c7 08             	add    $0x8,%edi
40565b:	56                   	push   %esi
40565c:	8d 14 3b             	lea    (%ebx,%edi,1),%edx
40565f:	e8 b2 a5 00 00       	call   0x40fc16
405664:	59                   	pop    %ecx
405665:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405668:	50                   	push   %eax
405669:	8d 49 28             	lea    0x28(%ecx),%ecx
40566c:	e8 f3 db ff ff       	call   0x403264
405671:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405674:	e8 b4 03 00 00       	call   0x405a2d
405679:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40567c:	03 fe                	add    %esi,%edi
40567e:	0f be 04 3b          	movsbl (%ebx,%edi,1),%eax
405682:	89 41 18             	mov    %eax,0x18(%ecx)
405685:	8d 4d f8             	lea    -0x8(%ebp),%ecx
405688:	8b 74 3b 01          	mov    0x1(%ebx,%edi,1),%esi
40568c:	83 c7 05             	add    $0x5,%edi
40568f:	56                   	push   %esi
405690:	8d 14 3b             	lea    (%ebx,%edi,1),%edx
405693:	e8 7e a5 00 00       	call   0x40fc16
405698:	59                   	pop    %ecx
405699:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40569c:	50                   	push   %eax
40569d:	8d 49 1c             	lea    0x1c(%ecx),%ecx
4056a0:	e8 bf db ff ff       	call   0x403264
4056a5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4056a8:	e8 80 03 00 00       	call   0x405a2d
4056ad:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4056b0:	03 fe                	add    %esi,%edi
4056b2:	0f be 04 3b          	movsbl (%ebx,%edi,1),%eax
4056b6:	89 41 20             	mov    %eax,0x20(%ecx)
4056b9:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4056bc:	8b 74 3b 01          	mov    0x1(%ebx,%edi,1),%esi
4056c0:	83 c7 05             	add    $0x5,%edi
4056c3:	56                   	push   %esi
4056c4:	8d 14 3b             	lea    (%ebx,%edi,1),%edx
4056c7:	e8 4a a5 00 00       	call   0x40fc16
4056cc:	59                   	pop    %ecx
4056cd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4056d0:	50                   	push   %eax
4056d1:	8d 49 24             	lea    0x24(%ecx),%ecx
4056d4:	e8 8b db ff ff       	call   0x403264
4056d9:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4056dc:	e8 4c 03 00 00       	call   0x405a2d
4056e1:	03 fe                	add    %esi,%edi
4056e3:	8d 53 04             	lea    0x4(%ebx),%edx
4056e6:	8b 75 fc             	mov    -0x4(%ebp),%esi
4056e9:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4056ec:	8b 04 3b             	mov    (%ebx,%edi,1),%eax
4056ef:	89 46 2c             	mov    %eax,0x2c(%esi)
4056f2:	0f be 44 3b 04       	movsbl 0x4(%ebx,%edi,1),%eax
4056f7:	89 46 34             	mov    %eax,0x34(%esi)
4056fa:	0f be 44 3b 05       	movsbl 0x5(%ebx,%edi,1),%eax
4056ff:	89 46 38             	mov    %eax,0x38(%esi)
405702:	0f be 44 3b 06       	movsbl 0x6(%ebx,%edi,1),%eax
405707:	89 46 3c             	mov    %eax,0x3c(%esi)
40570a:	0f be 44 3b 07       	movsbl 0x7(%ebx,%edi,1),%eax
40570f:	83 c7 08             	add    $0x8,%edi
405712:	89 46 40             	mov    %eax,0x40(%esi)
405715:	03 d7                	add    %edi,%edx
405717:	ff 34 3b             	push   (%ebx,%edi,1)
40571a:	e8 f7 a4 00 00       	call   0x40fc16
40571f:	59                   	pop    %ecx
405720:	8d 45 fc             	lea    -0x4(%ebp),%eax
405723:	50                   	push   %eax
405724:	8d 4e 30             	lea    0x30(%esi),%ecx
405727:	e8 38 db ff ff       	call   0x403264
40572c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40572f:	33 c0                	xor    %eax,%eax
405731:	40                   	inc    %eax
405732:	89 06                	mov    %eax,(%esi)
405734:	89 46 04             	mov    %eax,0x4(%esi)
405737:	e8 f1 02 00 00       	call   0x405a2d
40573c:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40573f:	e8 22 d7 ff ff       	call   0x402e66
405744:	8d 4d 98             	lea    -0x68(%ebp),%ecx
405747:	e8 1a d7 ff ff       	call   0x402e66
40574c:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40574f:	85 c9                	test   %ecx,%ecx
405751:	74 06                	je     0x405759
405753:	51                   	push   %ecx
405754:	e8 5b c6 ff ff       	call   0x401db4
405759:	33 c0                	xor    %eax,%eax
40575b:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40575e:	89 45 cc             	mov    %eax,-0x34(%ebp)
405761:	89 45 d4             	mov    %eax,-0x2c(%ebp)
405764:	89 45 d0             	mov    %eax,-0x30(%ebp)
405767:	e8 fa d6 ff ff       	call   0x402e66
40576c:	8d 4d a0             	lea    -0x60(%ebp),%ecx
40576f:	e8 17 87 00 00       	call   0x40de8b
405774:	5f                   	pop    %edi
405775:	5e                   	pop    %esi
405776:	5b                   	pop    %ebx
405777:	c9                   	leave
405778:	c3                   	ret
405779:	33 c0                	xor    %eax,%eax
40577b:	89 41 08             	mov    %eax,0x8(%ecx)
40577e:	89 41 0c             	mov    %eax,0xc(%ecx)
405781:	89 41 10             	mov    %eax,0x10(%ecx)
405784:	89 41 1c             	mov    %eax,0x1c(%ecx)
405787:	89 41 24             	mov    %eax,0x24(%ecx)
40578a:	89 41 28             	mov    %eax,0x28(%ecx)
40578d:	89 41 30             	mov    %eax,0x30(%ecx)
405790:	89 41 44             	mov    %eax,0x44(%ecx)
405793:	89 41 48             	mov    %eax,0x48(%ecx)
405796:	89 01                	mov    %eax,(%ecx)
405798:	89 41 04             	mov    %eax,0x4(%ecx)
40579b:	8b c1                	mov    %ecx,%eax
40579d:	c3                   	ret
40579e:	56                   	push   %esi
40579f:	8b f1                	mov    %ecx,%esi
4057a1:	57                   	push   %edi
4057a2:	8d 4e 44             	lea    0x44(%esi),%ecx
4057a5:	e8 bc d6 ff ff       	call   0x402e66
4057aa:	8b 4e 30             	mov    0x30(%esi),%ecx
4057ad:	e8 7b 02 00 00       	call   0x405a2d