4052e3:	51                   	push   %ecx
4052e4:	56                   	push   %esi
4052e5:	57                   	push   %edi
4052e6:	8b 79 2c             	mov    0x2c(%ecx),%edi
4052e9:	85 ff                	test   %edi,%edi
4052eb:	74 39                	je     0x405326
4052ed:	eb 32                	jmp    0x405321
4052ef:	8b 77 04             	mov    0x4(%edi),%esi
4052f2:	8b ce                	mov    %esi,%ecx
4052f4:	6a 01                	push   $0x1
4052f6:	ff 15 20 f2 40 00    	call   *0x40f220
4052fc:	ff d6                	call   *%esi
4052fe:	85 c0                	test   %eax,%eax
405300:	78 2b                	js     0x40532d
405302:	8b 77 1c             	mov    0x1c(%edi),%esi
405305:	8b ce                	mov    %esi,%ecx
405307:	6a 01                	push   $0x1
405309:	ff 15 20 f2 40 00    	call   *0x40f220
40530f:	ff d6                	call   *%esi
405311:	8b 0f                	mov    (%edi),%ecx
405313:	8b d0                	mov    %eax,%edx
405315:	e8 19 00 00 00       	call   0x405333
40531a:	85 c0                	test   %eax,%eax
40531c:	78 0f                	js     0x40532d
40531e:	83 c7 24             	add    $0x24,%edi
405321:	83 3f 00             	cmpl   $0x0,(%edi)
405324:	75 c9                	jne    0x4052ef
405326:	51                   	push   %ecx
405327:	51                   	push   %ecx
405328:	e8 04 ff ff ff       	call   0x405231
40532d:	5f                   	pop    %edi
40532e:	5e                   	pop    %esi
40532f:	59                   	pop    %ecx
405330:	c2 08 00             	ret    $0x8
405333:	8b ff                	mov    %edi,%edi
405335:	55                   	push   %ebp
405336:	8b ec                	mov    %esp,%ebp
405338:	81 ec c0 01 00 00    	sub    $0x1c0,%esp
40533e:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
405343:	33 c5                	xor    %ebp,%eax
405345:	89 45 f8             	mov    %eax,-0x8(%ebp)
405348:	53                   	push   %ebx
405349:	56                   	push   %esi
40534a:	33 db                	xor    %ebx,%ebx
40534c:	89 95 58 fe ff ff    	mov    %edx,-0x1a8(%ebp)
405352:	57                   	push   %edi
405353:	8b fa                	mov    %edx,%edi
405355:	8b c1                	mov    %ecx,%eax
405357:	89 85 60 fe ff ff    	mov    %eax,-0x1a0(%ebp)
40535d:	8b f3                	mov    %ebx,%esi
40535f:	89 b5 5c fe ff ff    	mov    %esi,-0x1a4(%ebp)
405365:	85 ff                	test   %edi,%edi
405367:	74 36                	je     0x40539f
405369:	ba 38 23 40 00       	mov    $0x402338,%edx
40536e:	e8 56 0a 00 00       	call   0x405dc9
405373:	85 c0                	test   %eax,%eax
405375:	75 28                	jne    0x40539f
405377:	8d 85 5c fe ff ff    	lea    -0x1a4(%ebp),%eax
40537d:	50                   	push   %eax
40537e:	68 5c 24 40 00       	push   $0x40245c
405383:	6a 01                	push   $0x1
405385:	53                   	push   %ebx
405386:	68 28 23 40 00       	push   $0x402328
40538b:	ff 15 24 f1 40 00    	call   *0x40f124
405391:	85 c0                	test   %eax,%eax
405393:	0f 89 bd 00 00 00    	jns    0x405456
405399:	8b b5 5c fe ff ff    	mov    -0x1a4(%ebp),%esi
40539f:	8b c3                	mov    %ebx,%eax
4053a1:	8b d8                	mov    %eax,%ebx
4053a3:	85 f6                	test   %esi,%esi
4053a5:	74 10                	je     0x4053b7
4053a7:	8b 0e                	mov    (%esi),%ecx
4053a9:	56                   	push   %esi
4053aa:	8b 71 08             	mov    0x8(%ecx),%esi
4053ad:	8b ce                	mov    %esi,%ecx
4053af:	ff 15 20 f2 40 00    	call   *0x40f220
4053b5:	ff d6                	call   *%esi
4053b7:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4053ba:	8b c3                	mov    %ebx,%eax
4053bc:	5f                   	pop    %edi
4053bd:	5e                   	pop    %esi
4053be:	33 cd                	xor    %ebp,%ecx
4053c0:	5b                   	pop    %ebx
4053c1:	e8 9a 44 00 00       	call   0x409860
4053c6:	c9                   	leave
4053c7:	c2 04 00             	ret    $0x4
4053ca:	8d 8d 64 fe ff ff    	lea    -0x19c(%ebp),%ecx
4053d0:	8b 77 04             	mov    0x4(%edi),%esi
4053d3:	8d bd 64 fe ff ff    	lea    -0x19c(%ebp),%edi
4053d9:	51                   	push   %ecx
4053da:	6a 01                	push   $0x1
4053dc:	ff b5 60 fe ff ff    	push   -0x1a0(%ebp)
4053e2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4053e3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4053e4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4053e5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4053e6:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4053e9:	74 34                	je     0x40541f
4053eb:	83 f8 01             	cmp    $0x1,%eax
4053ee:	8b 85 5c fe ff ff    	mov    -0x1a4(%ebp),%eax
4053f4:	50                   	push   %eax
4053f5:	8b 30                	mov    (%eax),%esi
4053f7:	75 0e                	jne    0x405407
4053f9:	8b 4e 14             	mov    0x14(%esi),%ecx
4053fc:	ff 15 20 f2 40 00    	call   *0x40f220
405402:	ff 56 14             	call   *0x14(%esi)
405405:	eb 0c                	jmp    0x405413
405407:	8b 4e 1c             	mov    0x1c(%esi),%ecx
40540a:	ff 15 20 f2 40 00    	call   *0x40f220
405410:	ff 56 1c             	call   *0x1c(%esi)
405413:	85 c0                	test   %eax,%eax
405415:	79 30                	jns    0x405447
405417:	8b b5 5c fe ff ff    	mov    -0x1a4(%ebp),%esi
40541d:	eb 82                	jmp    0x4053a1
40541f:	83 f8 01             	cmp    $0x1,%eax
405422:	8b 85 5c fe ff ff    	mov    -0x1a4(%ebp),%eax
405428:	50                   	push   %eax
405429:	8b 30                	mov    (%eax),%esi
40542b:	75 0e                	jne    0x40543b
40542d:	8b 4e 18             	mov    0x18(%esi),%ecx
405430:	ff 15 20 f2 40 00    	call   *0x40f220
405436:	ff 56 18             	call   *0x18(%esi)
405439:	eb 0c                	jmp    0x405447
40543b:	8b 4e 20             	mov    0x20(%esi),%ecx
40543e:	ff 15 20 f2 40 00    	call   *0x40f220
405444:	ff 56 20             	call   *0x20(%esi)
405447:	8b bd 58 fe ff ff    	mov    -0x1a8(%ebp),%edi
40544d:	83 c7 08             	add    $0x8,%edi
405450:	89 bd 58 fe ff ff    	mov    %edi,-0x1a8(%ebp)
405456:	8b 07                	mov    (%edi),%eax
405458:	85 c0                	test   %eax,%eax
40545a:	0f 85 6a ff ff ff    	jne    0x4053ca
405460:	39 5d 08             	cmp    %ebx,0x8(%ebp)
405463:	0f 85 3c 02 00 00    	jne    0x4056a5
405469:	6a 40                	push   $0x40
40546b:	8d 85 74 fe ff ff    	lea    -0x18c(%ebp),%eax
405471:	50                   	push   %eax
405472:	ff b5 60 fe ff ff    	push   -0x1a0(%ebp)
405478:	ff 15 1c f1 40 00    	call   *0x40f11c
40547e:	68 98 24 40 00       	push   $0x402498
405483:	be 80 00 00 00       	mov    $0x80,%esi
405488:	89 9d 40 fe ff ff    	mov    %ebx,-0x1c0(%ebp)
40548e:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
405494:	56                   	push   %esi
405495:	50                   	push   %eax
405496:	ff 15 e8 f1 40 00    	call   *0x40f1e8
40549c:	83 c4 0c             	add    $0xc,%esp
40549f:	8b c8                	mov    %eax,%ecx
4054a1:	e8 c3 16 00 00       	call   0x406b69
4054a6:	8d 85 74 fe ff ff    	lea    -0x18c(%ebp),%eax
4054ac:	50                   	push   %eax
4054ad:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
4054b3:	56                   	push   %esi
4054b4:	50                   	push   %eax
4054b5:	ff 15 e4 f1 40 00    	call   *0x40f1e4
4054bb:	83 c4 0c             	add    $0xc,%esp
4054be:	8b c8                	mov    %eax,%ecx
4054c0:	e8 a4 16 00 00       	call   0x406b69
4054c5:	68 6c 24 40 00       	push   $0x40246c
4054ca:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
4054d0:	56                   	push   %esi
4054d1:	50                   	push   %eax
4054d2:	ff 15 e4 f1 40 00    	call   *0x40f1e4
4054d8:	83 c4 0c             	add    $0xc,%esp
4054db:	8b c8                	mov    %eax,%ecx
4054dd:	e8 87 16 00 00       	call   0x406b69
4054e2:	8d 8d 58 fe ff ff    	lea    -0x1a8(%ebp),%ecx
4054e8:	89 9d 4c fe ff ff    	mov    %ebx,-0x1b4(%ebp)
4054ee:	51                   	push   %ecx
4054ef:	68 19 00 02 00       	push   $0x20019
4054f4:	53                   	push   %ebx
4054f5:	8d 8d f4 fe ff ff    	lea    -0x10c(%ebp),%ecx
4054fb:	89 9d 50 fe ff ff    	mov    %ebx,-0x1b0(%ebp)
405501:	b8 00 00 00 80       	mov    $0x80000000,%eax
405506:	89 9d 60 fe ff ff    	mov    %ebx,-0x1a0(%ebp)
40550c:	51                   	push   %ecx
40550d:	50                   	push   %eax
40550e:	89 85 48 fe ff ff    	mov    %eax,-0x1b8(%ebp)
405514:	8b f3                	mov    %ebx,%esi
405516:	89 9d 58 fe ff ff    	mov    %ebx,-0x1a8(%ebp)
40551c:	ff 15 0c f0 40 00    	call   *0x40f00c
405522:	85 c0                	test   %eax,%eax
405524:	75 5f                	jne    0x405585
405526:	8b b5 58 fe ff ff    	mov    -0x1a8(%ebp),%esi
40552c:	8d 85 60 fe ff ff    	lea    -0x1a0(%ebp),%eax
405532:	53                   	push   %ebx
405533:	53                   	push   %ebx
405534:	53                   	push   %ebx
405535:	53                   	push   %ebx
405536:	53                   	push   %ebx
405537:	53                   	push   %ebx
405538:	53                   	push   %ebx
405539:	50                   	push   %eax
40553a:	53                   	push   %ebx
40553b:	53                   	push   %ebx
40553c:	53                   	push   %ebx
40553d:	56                   	push   %esi
40553e:	ff 15 04 f0 40 00    	call   *0x40f004
405544:	89 85 54 fe ff ff    	mov    %eax,-0x1ac(%ebp)
40554a:	85 f6                	test   %esi,%esi
40554c:	74 0d                	je     0x40555b
40554e:	56                   	push   %esi
40554f:	ff 15 00 f0 40 00    	call   *0x40f000
405555:	8b 85 54 fe ff ff    	mov    -0x1ac(%ebp),%eax
40555b:	8b fe                	mov    %esi,%edi
40555d:	f7 df                	neg    %edi
40555f:	1b ff                	sbb    %edi,%edi
405561:	f7 d7                	not    %edi
405563:	23 fe                	and    %esi,%edi
405565:	8b f7                	mov    %edi,%esi
405567:	85 c0                	test   %eax,%eax
405569:	75 1a                	jne    0x405585
40556b:	39 9d 60 fe ff ff    	cmp    %ebx,-0x1a0(%ebp)
405571:	75 12                	jne    0x405585
405573:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
405579:	50                   	push   %eax
40557a:	8d 8d 48 fe ff ff    	lea    -0x1b8(%ebp),%ecx
405580:	e8 0b 18 00 00       	call   0x406d90
405585:	68 98 24 40 00       	push   $0x402498
40558a:	bf 80 00 00 00       	mov    $0x80,%edi
40558f:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
405595:	57                   	push   %edi
405596:	50                   	push   %eax
405597:	ff 15 e8 f1 40 00    	call   *0x40f1e8
40559d:	83 c4 0c             	add    $0xc,%esp
4055a0:	8b c8                	mov    %eax,%ecx
4055a2:	e8 c2 15 00 00       	call   0x406b69
4055a7:	8d 85 74 fe ff ff    	lea    -0x18c(%ebp),%eax
4055ad:	50                   	push   %eax
4055ae:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
4055b4:	57                   	push   %edi
4055b5:	50                   	push   %eax
4055b6:	ff 15 e4 f1 40 00    	call   *0x40f1e4
4055bc:	83 c4 0c             	add    $0xc,%esp
4055bf:	8b c8                	mov    %eax,%ecx
4055c1:	e8 a3 15 00 00       	call   0x406b69
4055c6:	68 a8 24 40 00       	push   $0x4024a8
4055cb:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
4055d1:	57                   	push   %edi
4055d2:	50                   	push   %eax
4055d3:	ff 15 e4 f1 40 00    	call   *0x40f1e4
4055d9:	83 c4 0c             	add    $0xc,%esp
4055dc:	8b c8                	mov    %eax,%ecx
4055de:	e8 86 15 00 00       	call   0x406b69
4055e3:	8b bd 48 fe ff ff    	mov    -0x1b8(%ebp),%edi
4055e9:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
4055ef:	50                   	push   %eax
4055f0:	68 19 00 02 00       	push   $0x20019
4055f5:	53                   	push   %ebx
4055f6:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
4055fc:	89 9d 54 fe ff ff    	mov    %ebx,-0x1ac(%ebp)
405602:	50                   	push   %eax
405603:	57                   	push   %edi
405604:	ff 15 0c f0 40 00    	call   *0x40f00c
40560a:	85 c0                	test   %eax,%eax
40560c:	75 76                	jne    0x405684
40560e:	8b c3                	mov    %ebx,%eax
405610:	85 f6                	test   %esi,%esi
405612:	74 07                	je     0x40561b
405614:	56                   	push   %esi
405615:	ff 15 00 f0 40 00    	call   *0x40f000
40561b:	8b b5 54 fe ff ff    	mov    -0x1ac(%ebp),%esi
405621:	85 c0                	test   %eax,%eax
405623:	75 5f                	jne    0x405684
405625:	53                   	push   %ebx
405626:	53                   	push   %ebx
405627:	53                   	push   %ebx
405628:	53                   	push   %ebx
405629:	53                   	push   %ebx
40562a:	53                   	push   %ebx
40562b:	53                   	push   %ebx
40562c:	8d 85 60 fe ff ff    	lea    -0x1a0(%ebp),%eax
405632:	50                   	push   %eax
405633:	53                   	push   %ebx
405634:	53                   	push   %ebx
405635:	53                   	push   %ebx
405636:	56                   	push   %esi
405637:	ff 15 04 f0 40 00    	call   *0x40f004
40563d:	89 85 44 fe ff ff    	mov    %eax,-0x1bc(%ebp)
405643:	85 f6                	test   %esi,%esi
405645:	74 0d                	je     0x405654
405647:	56                   	push   %esi
405648:	ff 15 00 f0 40 00    	call   *0x40f000
40564e:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
405654:	8b fe                	mov    %esi,%edi
405656:	f7 df                	neg    %edi
405658:	1b ff                	sbb    %edi,%edi
40565a:	f7 d7                	not    %edi
40565c:	23 fe                	and    %esi,%edi
40565e:	8b f7                	mov    %edi,%esi
405660:	85 c0                	test   %eax,%eax
405662:	75 1a                	jne    0x40567e
405664:	39 9d 60 fe ff ff    	cmp    %ebx,-0x1a0(%ebp)
40566a:	75 12                	jne    0x40567e
40566c:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
405672:	50                   	push   %eax
405673:	8d 8d 48 fe ff ff    	lea    -0x1b8(%ebp),%ecx
405679:	e8 12 17 00 00       	call   0x406d90
40567e:	8b bd 48 fe ff ff    	mov    -0x1b8(%ebp),%edi
405684:	85 f6                	test   %esi,%esi
405686:	74 07                	je     0x40568f
405688:	56                   	push   %esi
405689:	ff 15 00 f0 40 00    	call   *0x40f000
40568f:	85 ff                	test   %edi,%edi
405691:	74 07                	je     0x40569a
405693:	57                   	push   %edi
405694:	ff 15 00 f0 40 00    	call   *0x40f000
40569a:	8d 8d 40 fe ff ff    	lea    -0x1c0(%ebp),%ecx
4056a0:	e8 e7 0f 00 00       	call   0x40668c
4056a5:	8b b5 5c fe ff ff    	mov    -0x1a4(%ebp),%esi
4056ab:	e9 f3 fc ff ff       	jmp    0x4053a3
4056b0:	8b ff                	mov    %edi,%edi
4056b2:	55                   	push   %ebp
4056b3:	8b ec                	mov    %esp,%ebp
4056b5:	81 ec 38 02 00 00    	sub    $0x238,%esp
4056bb:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
4056c0:	33 c5                	xor    %ebp,%eax
4056c2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4056c5:	8b 45 08             	mov    0x8(%ebp),%eax
4056c8:	89 85 cc fd ff ff    	mov    %eax,-0x234(%ebp)
4056ce:	56                   	push   %esi
4056cf:	8b 75 0c             	mov    0xc(%ebp),%esi
4056d2:	89 b5 d0 fd ff ff    	mov    %esi,-0x230(%ebp)
4056d8:	85 c0                	test   %eax,%eax
4056da:	0f 84 2a 01 00 00    	je     0x40580a
4056e0:	85 f6                	test   %esi,%esi
4056e2:	0f 84 22 01 00 00    	je     0x40580a
4056e8:	53                   	push   %ebx
4056e9:	57                   	push   %edi
4056ea:	33 ff                	xor    %edi,%edi
4056ec:	bb 04 01 00 00       	mov    $0x104,%ebx
4056f1:	89 38                	mov    %edi,(%eax)
4056f3:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
4056f9:	53                   	push   %ebx
4056fa:	50                   	push   %eax
4056fb:	51                   	push   %ecx
4056fc:	89 3e                	mov    %edi,(%esi)
4056fe:	89 bd c8 fd ff ff    	mov    %edi,-0x238(%ebp)
405704:	ff 15 ac f0 40 00    	call   *0x40f0ac
40570a:	85 c0                	test   %eax,%eax
40570c:	75 0c                	jne    0x40571a
40570e:	e8 e3 0b 00 00       	call   0x4062f6
405713:	8b f0                	mov    %eax,%esi
405715:	e9 df 00 00 00       	jmp    0x4057f9
40571a:	3b c3                	cmp    %ebx,%eax
40571c:	75 0a                	jne    0x405728
40571e:	be 7a 00 07 80       	mov    $0x8007007a,%esi
405723:	e9 d1 00 00 00       	jmp    0x4057f9
405728:	66 8b 8d d4 fd ff ff 	mov    -0x22c(%ebp),%cx
40572f:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax