405463:	8b c3                	mov    %ebx,%eax
405465:	5f                   	pop    %edi
405466:	5e                   	pop    %esi
405467:	33 cd                	xor    %ebp,%ecx
405469:	5b                   	pop    %ebx
40546a:	e8 31 8f 00 00       	call   0x40e3a0
40546f:	c9                   	leave
405470:	c2 0c 00             	ret    $0xc
405473:	8b ff                	mov    %edi,%edi
405475:	55                   	push   %ebp
405476:	8b ec                	mov    %esp,%ebp
405478:	83 e4 f8             	and    $0xfffffff8,%esp
40547b:	51                   	push   %ecx
40547c:	56                   	push   %esi
40547d:	6a 00                	push   $0x0
40547f:	ff 75 08             	push   0x8(%ebp)
405482:	8d 44 24 0c          	lea    0xc(%esp),%eax
405486:	8b f1                	mov    %ecx,%esi
405488:	50                   	push   %eax
405489:	e8 f9 fe ff ff       	call   0x405387
40548e:	8b 00                	mov    (%eax),%eax
405490:	3b 46 08             	cmp    0x8(%esi),%eax
405493:	74 06                	je     0x40549b
405495:	80 78 28 00          	cmpb   $0x0,0x28(%eax)
405499:	74 24                	je     0x4054bf
40549b:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40549f:	74 22                	je     0x4054c3
4054a1:	6a 00                	push   $0x0
4054a3:	ff 75 0c             	push   0xc(%ebp)
4054a6:	8d 44 24 0c          	lea    0xc(%esp),%eax
4054aa:	8b ce                	mov    %esi,%ecx
4054ac:	50                   	push   %eax
4054ad:	e8 d5 fe ff ff       	call   0x405387
4054b2:	8b 00                	mov    (%eax),%eax
4054b4:	3b 46 08             	cmp    0x8(%esi),%eax
4054b7:	74 0a                	je     0x4054c3
4054b9:	80 78 28 00          	cmpb   $0x0,0x28(%eax)
4054bd:	75 04                	jne    0x4054c3
4054bf:	b0 01                	mov    $0x1,%al
4054c1:	eb 02                	jmp    0x4054c5
4054c3:	32 c0                	xor    %al,%al
4054c5:	5e                   	pop    %esi
4054c6:	8b e5                	mov    %ebp,%esp
4054c8:	5d                   	pop    %ebp
4054c9:	c2 08 00             	ret    $0x8
4054cc:	8b ff                	mov    %edi,%edi
4054ce:	53                   	push   %ebx
4054cf:	56                   	push   %esi
4054d0:	33 db                	xor    %ebx,%ebx
4054d2:	8b f1                	mov    %ecx,%esi
4054d4:	53                   	push   %ebx
4054d5:	68 98 21 40 00       	push   $0x402198
4054da:	e8 94 ff ff ff       	call   0x405473
4054df:	84 c0                	test   %al,%al
4054e1:	75 15                	jne    0x4054f8
4054e3:	68 9c 21 40 00       	push   $0x40219c
4054e8:	68 a8 21 40 00       	push   $0x4021a8
4054ed:	8b ce                	mov    %esi,%ecx
4054ef:	e8 7f ff ff ff       	call   0x405473
4054f4:	84 c0                	test   %al,%al
4054f6:	74 02                	je     0x4054fa
4054f8:	b3 01                	mov    $0x1,%bl
4054fa:	5e                   	pop    %esi
4054fb:	8a c3                	mov    %bl,%al
4054fd:	5b                   	pop    %ebx
4054fe:	c3                   	ret
4054ff:	cc                   	int3
405500:	8b ff                	mov    %edi,%edi
405502:	55                   	push   %ebp
405503:	8b ec                	mov    %esp,%ebp
405505:	56                   	push   %esi
405506:	8b f1                	mov    %ecx,%esi
405508:	8d 4e 10             	lea    0x10(%esi),%ecx
40550b:	e8 97 09 00 00       	call   0x405ea7
405510:	8d 4e 08             	lea    0x8(%esi),%ecx
405513:	e8 d3 09 00 00       	call   0x405eeb
405518:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40551c:	c7 06 e0 15 40 00    	movl   $0x4015e0,(%esi)
405522:	74 08                	je     0x40552c
405524:	56                   	push   %esi
405525:	ff 15 e4 21 41 00    	call   *0x4121e4
40552b:	59                   	pop    %ecx
40552c:	8b c6                	mov    %esi,%eax
40552e:	5e                   	pop    %esi
40552f:	5d                   	pop    %ebp
405530:	c2 04 00             	ret    $0x4
405533:	8b ff                	mov    %edi,%edi
405535:	56                   	push   %esi
405536:	8b f1                	mov    %ecx,%esi
405538:	6a f5                	push   $0xfffffff5
40553a:	83 66 08 00          	andl   $0x0,0x8(%esi)
40553e:	c7 06 e0 15 40 00    	movl   $0x4015e0,(%esi)
405544:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
40554b:	c7 06 cc 15 40 00    	movl   $0x4015cc,(%esi)
405551:	ff 15 cc 20 41 00    	call   *0x4120cc
405557:	6a f4                	push   $0xfffffff4
405559:	89 46 10             	mov    %eax,0x10(%esi)
40555c:	ff 15 cc 20 41 00    	call   *0x4120cc
405562:	89 46 14             	mov    %eax,0x14(%esi)
405565:	8b c6                	mov    %esi,%eax
405567:	c6 46 0c 00          	movb   $0x0,0xc(%esi)
40556b:	5e                   	pop    %esi
40556c:	c3                   	ret
40556d:	cc                   	int3
40556e:	cc                   	int3
40556f:	cc                   	int3
405570:	8b ff                	mov    %edi,%edi
405572:	55                   	push   %ebp
405573:	8b ec                	mov    %esp,%ebp
405575:	56                   	push   %esi
405576:	8b f1                	mov    %ecx,%esi
405578:	e8 15 00 00 00       	call   0x405592
40557d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
405581:	74 08                	je     0x40558b
405583:	56                   	push   %esi
405584:	ff 15 e4 21 41 00    	call   *0x4121e4
40558a:	59                   	pop    %ecx
40558b:	8b c6                	mov    %esi,%eax
40558d:	5e                   	pop    %esi
40558e:	5d                   	pop    %ebp
40558f:	c2 04 00             	ret    $0x4
405592:	8b ff                	mov    %edi,%edi
405594:	56                   	push   %esi
405595:	8b f1                	mov    %ecx,%esi
405597:	8b 4e 08             	mov    0x8(%esi),%ecx
40559a:	85 c9                	test   %ecx,%ecx
40559c:	74 05                	je     0x4055a3
40559e:	e8 90 0b 00 00       	call   0x406133
4055a3:	83 66 08 00          	andl   $0x0,0x8(%esi)
4055a7:	c7 06 e0 15 40 00    	movl   $0x4015e0,(%esi)
4055ad:	5e                   	pop    %esi
4055ae:	c3                   	ret
4055af:	8b ff                	mov    %edi,%edi
4055b1:	56                   	push   %esi
4055b2:	8b f1                	mov    %ecx,%esi
4055b4:	e8 7a ff ff ff       	call   0x405533
4055b9:	c7 06 bc 15 40 00    	movl   $0x4015bc,(%esi)
4055bf:	33 d2                	xor    %edx,%edx
4055c1:	89 56 28             	mov    %edx,0x28(%esi)
4055c4:	33 c0                	xor    %eax,%eax
4055c6:	6a 07                	push   $0x7
4055c8:	59                   	pop    %ecx
4055c9:	89 4e 2c             	mov    %ecx,0x2c(%esi)
4055cc:	66 89 46 18          	mov    %ax,0x18(%esi)
4055d0:	89 4e 44             	mov    %ecx,0x44(%esi)
4055d3:	89 56 40             	mov    %edx,0x40(%esi)
4055d6:	66 89 46 30          	mov    %ax,0x30(%esi)
4055da:	8b c6                	mov    %esi,%eax
4055dc:	89 56 48             	mov    %edx,0x48(%esi)
4055df:	89 56 4c             	mov    %edx,0x4c(%esi)
4055e2:	89 56 50             	mov    %edx,0x50(%esi)
4055e5:	88 56 54             	mov    %dl,0x54(%esi)
4055e8:	5e                   	pop    %esi
4055e9:	c3                   	ret
4055ea:	cc                   	int3
4055eb:	cc                   	int3
4055ec:	cc                   	int3
4055ed:	cc                   	int3
4055ee:	cc                   	int3
4055ef:	cc                   	int3
4055f0:	8b ff                	mov    %edi,%edi
4055f2:	55                   	push   %ebp
4055f3:	8b ec                	mov    %esp,%ebp
4055f5:	56                   	push   %esi
4055f6:	8b f1                	mov    %ecx,%esi
4055f8:	e8 97 55 00 00       	call   0x40ab94
4055fd:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
405601:	74 08                	je     0x40560b
405603:	56                   	push   %esi
405604:	ff 15 e4 21 41 00    	call   *0x4121e4
40560a:	59                   	pop    %ecx
40560b:	8b c6                	mov    %esi,%eax
40560d:	5e                   	pop    %esi
40560e:	5d                   	pop    %ebp
40560f:	c2 04 00             	ret    $0x4
405612:	cc                   	int3
405613:	cc                   	int3
405614:	cc                   	int3
405615:	cc                   	int3
405616:	cc                   	int3
405617:	cc                   	int3
405618:	cc                   	int3
405619:	cc                   	int3
40561a:	cc                   	int3
40561b:	cc                   	int3
40561c:	cc                   	int3
40561d:	cc                   	int3
40561e:	cc                   	int3
40561f:	cc                   	int3
405620:	8b ff                	mov    %edi,%edi
405622:	55                   	push   %ebp
405623:	8b ec                	mov    %esp,%ebp
405625:	51                   	push   %ecx
405626:	8b 45 10             	mov    0x10(%ebp),%eax
405629:	53                   	push   %ebx
40562a:	33 db                	xor    %ebx,%ebx
40562c:	56                   	push   %esi
40562d:	8b 75 0c             	mov    0xc(%ebp),%esi
405630:	89 18                	mov    %ebx,(%eax)
405632:	8b 45 08             	mov    0x8(%ebp),%eax
405635:	57                   	push   %edi
405636:	83 e8 04             	sub    $0x4,%eax
405639:	74 12                	je     0x40564d
40563b:	83 e8 01             	sub    $0x1,%eax
40563e:	74 05                	je     0x405645
405640:	6a 57                	push   $0x57
405642:	58                   	pop    %eax
405643:	eb 48                	jmp    0x40568d
405645:	8b fb                	mov    %ebx,%edi
405647:	8b c3                	mov    %ebx,%eax
405649:	8a d3                	mov    %bl,%dl
40564b:	eb 23                	jmp    0x405670
40564d:	ff 75 14             	push   0x14(%ebp)
405650:	ff 15 04 22 41 00    	call   *0x412204
405656:	8b fa                	mov    %edx,%edi
405658:	8b d8                	mov    %eax,%ebx
40565a:	57                   	push   %edi
40565b:	53                   	push   %ebx
40565c:	ff 15 00 22 41 00    	call   *0x412200
405662:	57                   	push   %edi
405663:	53                   	push   %ebx
405664:	88 45 ff             	mov    %al,-0x1(%ebp)
405667:	ff 15 fc 21 41 00    	call   *0x4121fc
40566d:	8a 55 ff             	mov    -0x1(%ebp),%dl
405670:	f6 46 1a 02          	testb  $0x2,0x1a(%esi)
405674:	74 09                	je     0x40567f
405676:	8b 4e 10             	mov    0x10(%esi),%ecx
405679:	85 c9                	test   %ecx,%ecx
40567b:	74 02                	je     0x40567f
40567d:	8b f1                	mov    %ecx,%esi
40567f:	89 46 1c             	mov    %eax,0x1c(%esi)
405682:	33 c0                	xor    %eax,%eax
405684:	89 5e 10             	mov    %ebx,0x10(%esi)
405687:	89 7e 14             	mov    %edi,0x14(%esi)
40568a:	88 56 19             	mov    %dl,0x19(%esi)
40568d:	5f                   	pop    %edi
40568e:	5e                   	pop    %esi
40568f:	5b                   	pop    %ebx
405690:	c9                   	leave
405691:	c2 10 00             	ret    $0x10
405694:	6a 0c                	push   $0xc
405696:	b8 78 ec 40 00       	mov    $0x40ec78,%eax
40569b:	e8 ae 8f 00 00       	call   0x40e64e
4056a0:	8b f1                	mov    %ecx,%esi
4056a2:	6a f5                	push   $0xfffffff5
4056a4:	ff 15 cc 20 41 00    	call   *0x4120cc
4056aa:	6a f4                	push   $0xfffffff4
4056ac:	8b d8                	mov    %eax,%ebx
4056ae:	ff 15 cc 20 41 00    	call   *0x4120cc
4056b4:	8b f8                	mov    %eax,%edi
4056b6:	33 c0                	xor    %eax,%eax
4056b8:	89 45 e8             	mov    %eax,-0x18(%ebp)
4056bb:	89 45 ec             	mov    %eax,-0x14(%ebp)
4056be:	89 45 f0             	mov    %eax,-0x10(%ebp)
4056c1:	89 45 fc             	mov    %eax,-0x4(%ebp)
4056c4:	85 f6                	test   %esi,%esi
4056c6:	74 1d                	je     0x4056e5
4056c8:	8b d6                	mov    %esi,%edx
4056ca:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4056cd:	e8 b6 81 00 00       	call   0x40d888
4056d2:	ff 75 e8             	push   -0x18(%ebp)
4056d5:	68 ac 21 40 00       	push   $0x4021ac
4056da:	57                   	push   %edi
4056db:	e8 51 1d 00 00       	call   0x407431
4056e0:	83 c4 0c             	add    $0xc,%esp
4056e3:	33 c0                	xor    %eax,%eax
4056e5:	50                   	push   %eax
4056e6:	ff 15 b0 20 41 00    	call   *0x4120b0
4056ec:	6a 00                	push   $0x0
4056ee:	6a 28                	push   $0x28
4056f0:	8d 55 e8             	lea    -0x18(%ebp),%edx
4056f3:	8b c8                	mov    %eax,%ecx
4056f5:	e8 af 81 00 00       	call   0x40d8a9
4056fa:	8b 75 e8             	mov    -0x18(%ebp),%esi
4056fd:	56                   	push   %esi
4056fe:	68 bc 21 40 00       	push   $0x4021bc
405703:	53                   	push   %ebx
405704:	e8 28 1d 00 00       	call   0x407431
405709:	83 c4 0c             	add    $0xc,%esp
40570c:	85 f6                	test   %esi,%esi
40570e:	74 08                	je     0x405718
405710:	56                   	push   %esi
405711:	ff 15 e4 21 41 00    	call   *0x4121e4
405717:	59                   	pop    %ecx
405718:	e8 ff 8e 00 00       	call   0x40e61c
40571d:	c3                   	ret
40571e:	6a 04                	push   $0x4
405720:	b8 9b ec 40 00       	mov    $0x40ec9b,%eax
405725:	e8 24 8f 00 00       	call   0x40e64e
40572a:	33 f6                	xor    %esi,%esi
40572c:	56                   	push   %esi
40572d:	e8 1e 13 00 00       	call   0x406a50
405732:	8b f8                	mov    %eax,%edi
405734:	89 75 f0             	mov    %esi,-0x10(%ebp)
405737:	83 cb ff             	or     $0xffffffff,%ebx
40573a:	89 75 fc             	mov    %esi,-0x4(%ebp)
40573d:	53                   	push   %ebx
40573e:	68 c4 21 40 00       	push   $0x4021c4
405743:	53                   	push   %ebx
405744:	57                   	push   %edi
405745:	6a 01                	push   $0x1
405747:	6a 7f                	push   $0x7f
405749:	ff 15 f4 20 41 00    	call   *0x4120f4
40574f:	83 f8 02             	cmp    $0x2,%eax
405752:	0f 84 e5 02 00 00    	je     0x405a3d
405758:	53                   	push   %ebx
405759:	68 e8 21 40 00       	push   $0x4021e8
40575e:	53                   	push   %ebx
40575f:	57                   	push   %edi
405760:	6a 01                	push   $0x1
405762:	6a 7f                	push   $0x7f
405764:	ff 15 f4 20 41 00    	call   *0x4120f4
40576a:	83 f8 02             	cmp    $0x2,%eax
40576d:	0f 84 ca 02 00 00    	je     0x405a3d
405773:	53                   	push   %ebx
405774:	68 f0 21 40 00       	push   $0x4021f0
405779:	53                   	push   %ebx
40577a:	57                   	push   %edi
40577b:	6a 01                	push   $0x1
40577d:	6a 7f                	push   $0x7f
40577f:	ff 15 f4 20 41 00    	call   *0x4120f4
405785:	83 f8 02             	cmp    $0x2,%eax
405788:	0f 84 93 02 00 00    	je     0x405a21
40578e:	53                   	push   %ebx
40578f:	68 14 22 40 00       	push   $0x402214
405794:	53                   	push   %ebx
405795:	57                   	push   %edi
405796:	6a 01                	push   $0x1
405798:	6a 7f                	push   $0x7f
40579a:	ff 15 f4 20 41 00    	call   *0x4120f4
4057a0:	83 f8 02             	cmp    $0x2,%eax
4057a3:	0f 84 78 02 00 00    	je     0x405a21
4057a9:	53                   	push   %ebx
4057aa:	68 1c 22 40 00       	push   $0x40221c
4057af:	53                   	push   %ebx
4057b0:	57                   	push   %edi
4057b1:	6a 01                	push   $0x1
4057b3:	6a 7f                	push   $0x7f
4057b5:	ff 15 f4 20 41 00    	call   *0x4120f4
4057bb:	83 f8 02             	cmp    $0x2,%eax
4057be:	0f 84 31 02 00 00    	je     0x4059f5
4057c4:	53                   	push   %ebx
4057c5:	68 44 22 40 00       	push   $0x402244
4057ca:	53                   	push   %ebx
4057cb:	57                   	push   %edi
4057cc:	6a 01                	push   $0x1
4057ce:	6a 7f                	push   $0x7f
4057d0:	ff 15 f4 20 41 00    	call   *0x4120f4
4057d6:	83 f8 02             	cmp    $0x2,%eax
4057d9:	0f 84 16 02 00 00    	je     0x4059f5