4056c0:	57                   	push   %edi
4056c1:	6a 05                	push   $0x5
4056c3:	ff 15 e8 80 40 00    	call   *0x4080e8
4056c9:	85 c0                	test   %eax,%eax
4056cb:	74 3c                	je     0x405709
4056cd:	8d 85 30 fc ff ff    	lea    -0x3d0(%ebp),%eax
4056d3:	c7 85 30 fc ff ff 2c 	movl   $0x22c,-0x3d0(%ebp)
4056da:	02 00 00
4056dd:	50                   	push   %eax
4056de:	53                   	push   %ebx
4056df:	57                   	push   %edi
4056e0:	ff 15 48 81 40 00    	call   *0x408148
4056e6:	85 c0                	test   %eax,%eax
4056e8:	74 18                	je     0x405702
4056ea:	f7 85 34 fc ff ff 80 	testl  $0x180,-0x3cc(%ebp)
4056f1:	01 00 00
4056f4:	74 0c                	je     0x405702
4056f6:	8b 46 10             	mov    0x10(%esi),%eax
4056f9:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
405700:	eb 03                	jmp    0x405705
405702:	8b 46 0c             	mov    0xc(%esi),%eax
405705:	ff 06                	incl   (%esi)
405707:	eb 03                	jmp    0x40570c
405709:	8b 46 14             	mov    0x14(%esi),%eax
40570c:	50                   	push   %eax
40570d:	8d 85 6c fe ff ff    	lea    -0x194(%ebp),%eax
405713:	50                   	push   %eax
405714:	68 bc 11 40 00       	push   $0x4011bc
405719:	ff 15 bc 81 40 00    	call   *0x4081bc
40571f:	83 c4 0c             	add    $0xc,%esp
405722:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405725:	33 c0                	xor    %eax,%eax
405727:	5f                   	pop    %edi
405728:	5e                   	pop    %esi
405729:	33 cd                	xor    %ebp,%ecx
40572b:	5b                   	pop    %ebx
40572c:	e8 af 11 00 00       	call   0x4068e0
405731:	c9                   	leave
405732:	c2 10 00             	ret    $0x10
405735:	cc                   	int3
405736:	cc                   	int3
405737:	cc                   	int3
405738:	cc                   	int3
405739:	cc                   	int3
40573a:	cc                   	int3
40573b:	cc                   	int3
40573c:	cc                   	int3
40573d:	cc                   	int3
40573e:	cc                   	int3
40573f:	cc                   	int3
405740:	8b ff                	mov    %edi,%edi
405742:	55                   	push   %ebp
405743:	8b ec                	mov    %esp,%ebp
405745:	81 ec fc 01 00 00    	sub    $0x1fc,%esp
40574b:	a1 b4 71 40 00       	mov    0x4071b4,%eax
405750:	33 c5                	xor    %ebp,%eax
405752:	89 45 fc             	mov    %eax,-0x4(%ebp)
405755:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
405759:	8b 45 0c             	mov    0xc(%ebp),%eax
40575c:	56                   	push   %esi
40575d:	8b 75 18             	mov    0x18(%ebp),%esi
405760:	57                   	push   %edi
405761:	0f 84 03 01 00 00    	je     0x40586a
405767:	85 c0                	test   %eax,%eax
405769:	0f 85 fb 00 00 00    	jne    0x40586a
40576f:	6a 50                	push   $0x50
405771:	8d 85 bc fe ff ff    	lea    -0x144(%ebp),%eax
405777:	33 ff                	xor    %edi,%edi
405779:	50                   	push   %eax
40577a:	68 c1 0b 00 00       	push   $0xbc1
40577f:	57                   	push   %edi
405780:	ff 15 64 81 40 00    	call   *0x408164
405786:	85 c0                	test   %eax,%eax
405788:	0f 84 d8 00 00 00    	je     0x405866
40578e:	6a 50                	push   $0x50
405790:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
405796:	50                   	push   %eax
405797:	68 c2 0b 00 00       	push   $0xbc2
40579c:	57                   	push   %edi
40579d:	ff 15 64 81 40 00    	call   *0x408164
4057a3:	85 c0                	test   %eax,%eax
4057a5:	0f 84 bb 00 00 00    	je     0x405866
4057ab:	6a 50                	push   $0x50
4057ad:	8d 85 1c fe ff ff    	lea    -0x1e4(%ebp),%eax
4057b3:	50                   	push   %eax
4057b4:	68 c3 0b 00 00       	push   $0xbc3
4057b9:	57                   	push   %edi
4057ba:	ff 15 64 81 40 00    	call   *0x408164
4057c0:	85 c0                	test   %eax,%eax
4057c2:	0f 84 9e 00 00 00    	je     0x405866
4057c8:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
4057ce:	89 bd 0c fe ff ff    	mov    %edi,-0x1f4(%ebp)
4057d4:	89 85 14 fe ff ff    	mov    %eax,-0x1ec(%ebp)
4057da:	33 d2                	xor    %edx,%edx
4057dc:	8d 85 bc fe ff ff    	lea    -0x144(%ebp),%eax
4057e2:	89 bd 04 fe ff ff    	mov    %edi,-0x1fc(%ebp)
4057e8:	89 85 10 fe ff ff    	mov    %eax,-0x1f0(%ebp)
4057ee:	8d 85 1c fe ff ff    	lea    -0x1e4(%ebp),%eax
4057f4:	89 85 18 fe ff ff    	mov    %eax,-0x1e8(%ebp)
4057fa:	8d 85 04 fe ff ff    	lea    -0x1fc(%ebp),%eax
405800:	50                   	push   %eax
405801:	68 20 56 40 00       	push   $0x405620
405806:	56                   	push   %esi
405807:	ff 75 14             	push   0x14(%ebp)
40580a:	6a 02                	push   $0x2
40580c:	e8 ce c8 ff ff       	call   0x4020df
405811:	8b f0                	mov    %eax,%esi
405813:	85 f6                	test   %esi,%esi
405815:	75 4b                	jne    0x405862
405817:	8b 8d 04 fe ff ff    	mov    -0x1fc(%ebp),%ecx
40581d:	85 c9                	test   %ecx,%ecx
40581f:	75 17                	jne    0x405838
405821:	68 12 ef 00 00       	push   $0xef12
405826:	6a 01                	push   $0x1
405828:	e8 4c 16 00 00       	call   0x406e79
40582d:	59                   	pop    %ecx
40582e:	50                   	push   %eax
40582f:	e8 a9 c1 ff ff       	call   0x4019dd
405834:	59                   	pop    %ecx
405835:	59                   	pop    %ecx
405836:	eb 2a                	jmp    0x405862
405838:	51                   	push   %ecx
405839:	39 bd 0c fe ff ff    	cmp    %edi,-0x1f4(%ebp)
40583f:	75 09                	jne    0x40584a
405841:	68 14 ef 00 00       	push   $0xef14
405846:	6a 01                	push   $0x1
405848:	eb 09                	jmp    0x405853
40584a:	33 f6                	xor    %esi,%esi
40584c:	68 13 ef 00 00       	push   $0xef13
405851:	46                   	inc    %esi
405852:	56                   	push   %esi
405853:	e8 21 16 00 00       	call   0x406e79
405858:	59                   	pop    %ecx
405859:	50                   	push   %eax
40585a:	e8 7e c1 ff ff       	call   0x4019dd
40585f:	83 c4 0c             	add    $0xc,%esp
405862:	8b c6                	mov    %esi,%eax
405864:	eb 07                	jmp    0x40586d
405866:	6a 02                	push   $0x2
405868:	eb 02                	jmp    0x40586c
40586a:	6a 03                	push   $0x3
40586c:	58                   	pop    %eax
40586d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405870:	5f                   	pop    %edi
405871:	33 cd                	xor    %ebp,%ecx
405873:	5e                   	pop    %esi
405874:	e8 67 10 00 00       	call   0x4068e0
405879:	c9                   	leave
40587a:	c2 14 00             	ret    $0x14
40587d:	cc                   	int3
40587e:	cc                   	int3
40587f:	cc                   	int3
405880:	cc                   	int3
405881:	cc                   	int3
405882:	cc                   	int3
405883:	cc                   	int3
405884:	cc                   	int3
405885:	cc                   	int3
405886:	cc                   	int3
405887:	cc                   	int3
405888:	cc                   	int3
405889:	cc                   	int3
40588a:	cc                   	int3
40588b:	cc                   	int3
40588c:	cc                   	int3
40588d:	cc                   	int3
40588e:	cc                   	int3
40588f:	cc                   	int3
405890:	8b ff                	mov    %edi,%edi
405892:	55                   	push   %ebp
405893:	8b ec                	mov    %esp,%ebp
405895:	51                   	push   %ecx
405896:	51                   	push   %ecx
405897:	56                   	push   %esi
405898:	57                   	push   %edi
405899:	8b 7d 0c             	mov    0xc(%ebp),%edi
40589c:	33 c0                	xor    %eax,%eax
40589e:	89 45 fc             	mov    %eax,-0x4(%ebp)
4058a1:	6a 02                	push   $0x2
4058a3:	5e                   	pop    %esi
4058a4:	85 ff                	test   %edi,%edi
4058a6:	74 12                	je     0x4058ba
4058a8:	8d 45 fc             	lea    -0x4(%ebp),%eax
4058ab:	50                   	push   %eax
4058ac:	57                   	push   %edi
4058ad:	ff 15 ac 80 40 00    	call   *0x4080ac
4058b3:	85 c0                	test   %eax,%eax
4058b5:	75 69                	jne    0x405920
4058b7:	8b 45 fc             	mov    -0x4(%ebp),%eax
4058ba:	50                   	push   %eax
4058bb:	6a 00                	push   $0x0
4058bd:	6a 00                	push   $0x0
4058bf:	8d 45 f8             	lea    -0x8(%ebp),%eax
4058c2:	50                   	push   %eax
4058c3:	ff 15 b4 80 40 00    	call   *0x4080b4
4058c9:	85 c0                	test   %eax,%eax
4058cb:	75 44                	jne    0x405911
4058cd:	85 ff                	test   %edi,%edi
4058cf:	0f 95 c0             	setne  %al
4058d2:	05 76 ef 00 00       	add    $0xef76,%eax
4058d7:	50                   	push   %eax
4058d8:	6a 01                	push   $0x1
4058da:	e8 9a 15 00 00       	call   0x406e79
4058df:	59                   	pop    %ecx
4058e0:	50                   	push   %eax
4058e1:	e8 f7 c0 ff ff       	call   0x4019dd
4058e6:	59                   	pop    %ecx
4058e7:	59                   	pop    %ecx
4058e8:	ff 75 fc             	push   -0x4(%ebp)
4058eb:	6a 00                	push   $0x0
4058ed:	ff 75 f8             	push   -0x8(%ebp)
4058f0:	ff 15 bc 80 40 00    	call   *0x4080bc
4058f6:	85 c0                	test   %eax,%eax
4058f8:	75 17                	jne    0x405911
4058fa:	68 78 ef 00 00       	push   $0xef78
4058ff:	6a 01                	push   $0x1
405901:	e8 73 15 00 00       	call   0x406e79
405906:	59                   	pop    %ecx
405907:	50                   	push   %eax
405908:	e8 d0 c0 ff ff       	call   0x4019dd
40590d:	59                   	pop    %ecx
40590e:	59                   	pop    %ecx
40590f:	33 f6                	xor    %esi,%esi
405911:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
405915:	74 09                	je     0x405920
405917:	ff 75 fc             	push   -0x4(%ebp)
40591a:	ff 15 b8 80 40 00    	call   *0x4080b8
405920:	5f                   	pop    %edi
405921:	8b c6                	mov    %esi,%eax
405923:	5e                   	pop    %esi
405924:	c9                   	leave
405925:	c2 14 00             	ret    $0x14
405928:	cc                   	int3
405929:	cc                   	int3
40592a:	cc                   	int3
40592b:	cc                   	int3
40592c:	cc                   	int3
40592d:	cc                   	int3
40592e:	cc                   	int3
40592f:	cc                   	int3
405930:	8b ff                	mov    %edi,%edi
405932:	55                   	push   %ebp
405933:	8b ec                	mov    %esp,%ebp
405935:	83 ec 50             	sub    $0x50,%esp
405938:	a1 b4 71 40 00       	mov    0x4071b4,%eax
40593d:	33 c5                	xor    %ebp,%eax
40593f:	89 45 fc             	mov    %eax,-0x4(%ebp)
405942:	53                   	push   %ebx
405943:	56                   	push   %esi
405944:	8b 75 18             	mov    0x18(%ebp),%esi
405947:	33 c9                	xor    %ecx,%ecx
405949:	57                   	push   %edi
40594a:	8b 7d 0c             	mov    0xc(%ebp),%edi
40594d:	6a 02                	push   $0x2
40594f:	5b                   	pop    %ebx
405950:	89 7d b4             	mov    %edi,-0x4c(%ebp)
405953:	89 75 b8             	mov    %esi,-0x48(%ebp)
405956:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
405959:	89 4d bc             	mov    %ecx,-0x44(%ebp)
40595c:	88 4d eb             	mov    %cl,-0x15(%ebp)
40595f:	39 5d 14             	cmp    %ebx,0x14(%ebp)
405962:	0f 8c 26 04 00 00    	jl     0x405d8e
405968:	8b 06                	mov    (%esi),%eax
40596a:	66 39 08             	cmp    %cx,(%eax)
40596d:	0f 84 1b 04 00 00    	je     0x405d8e
405973:	51                   	push   %ecx
405974:	57                   	push   %edi
405975:	8d 4d bc             	lea    -0x44(%ebp),%ecx
405978:	51                   	push   %ecx
405979:	6a 01                	push   $0x1
40597b:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40597e:	51                   	push   %ecx
40597f:	50                   	push   %eax
405980:	ff 15 00 81 40 00    	call   *0x408100
405986:	85 c0                	test   %eax,%eax
405988:	75 0f                	jne    0x405999
40598a:	ff 15 38 80 40 00    	call   *0x408038
405990:	83 f8 7a             	cmp    $0x7a,%eax
405993:	0f 85 f1 03 00 00    	jne    0x405d8a
405999:	83 7d bc 00          	cmpl   $0x0,-0x44(%ebp)
40599d:	0f 84 e7 03 00 00    	je     0x405d8a
4059a3:	68 f8 13 40 00       	push   $0x4013f8
4059a8:	ff 76 04             	push   0x4(%esi)
4059ab:	ff 15 dc 81 40 00    	call   *0x4081dc
4059b1:	59                   	pop    %ecx
4059b2:	59                   	pop    %ecx
4059b3:	85 c0                	test   %eax,%eax
4059b5:	75 07                	jne    0x4059be
4059b7:	be d0 12 40 00       	mov    $0x4012d0,%esi
4059bc:	eb 1d                	jmp    0x4059db
4059be:	68 04 14 40 00       	push   $0x401404
4059c3:	ff 76 04             	push   0x4(%esi)
4059c6:	ff 15 dc 81 40 00    	call   *0x4081dc
4059cc:	59                   	pop    %ecx
4059cd:	59                   	pop    %ecx
4059ce:	85 c0                	test   %eax,%eax
4059d0:	0f 85 b1 03 00 00    	jne    0x405d87
4059d6:	be ec 12 40 00       	mov    $0x4012ec,%esi
4059db:	33 c0                	xor    %eax,%eax
4059dd:	89 75 c0             	mov    %esi,-0x40(%ebp)
4059e0:	83 7d 14 02          	cmpl   $0x2,0x14(%ebp)
4059e4:	50                   	push   %eax
4059e5:	0f 9f c0             	setg   %al
4059e8:	48                   	dec    %eax
4059e9:	57                   	push   %edi
4059ea:	83 e0 fa             	and    $0xfffffffa,%eax
4059ed:	6a 01                	push   $0x1
4059ef:	05 1f 00 02 00       	add    $0x2001f,%eax
4059f4:	50                   	push   %eax
4059f5:	8d 45 ec             	lea    -0x14(%ebp),%eax
4059f8:	50                   	push   %eax
4059f9:	ff 15 d0 80 40 00    	call   *0x4080d0
4059ff:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405a02:	83 f8 ff             	cmp    $0xffffffff,%eax
405a05:	0f 84 7f 03 00 00    	je     0x405d8a
405a0b:	8b d6                	mov    %esi,%edx
405a0d:	8b c8                	mov    %eax,%ecx
405a0f:	e8 4f c4 ff ff       	call   0x401e63
405a14:	83 7d 14 02          	cmpl   $0x2,0x14(%ebp)
405a18:	8b f0                	mov    %eax,%esi
405a1a:	89 75 d0             	mov    %esi,-0x30(%ebp)
405a1d:	0f 8e 25 03 00 00    	jle    0x405d48
405a23:	33 c9                	xor    %ecx,%ecx
405a25:	83 cf ff             	or     $0xffffffff,%edi
405a28:	41                   	inc    %ecx
405a29:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
405a2c:	85 f6                	test   %esi,%esi
405a2e:	75 17                	jne    0x405a47
405a30:	33 c9                	xor    %ecx,%ecx
405a32:	e8 73 c2 ff ff       	call   0x401caa
405a37:	8b f0                	mov    %eax,%esi
405a39:	89 75 d0             	mov    %esi,-0x30(%ebp)
405a3c:	85 f6                	test   %esi,%esi
405a3e:	0f 84 37 03 00 00    	je     0x405d7b
405a44:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
405a47:	6a 02                	push   $0x2
405a49:	5a                   	pop    %edx
405a4a:	89 55 c4             	mov    %edx,-0x3c(%ebp)
405a4d:	8b 45 b8             	mov    -0x48(%ebp),%eax
405a50:	8b 14 90             	mov    (%eax,%edx,4),%edx
405a53:	85 d2                	test   %edx,%edx
405a55:	0f 84 37 02 00 00    	je     0x405c92
405a5b:	0f b7 02             	movzwl (%edx),%eax
405a5e:	83 c2 02             	add    $0x2,%edx
405a61:	89 45 dc             	mov    %eax,-0x24(%ebp)
405a64:	89 55 c8             	mov    %edx,-0x38(%ebp)
405a67:	83 f8 3d             	cmp    $0x3d,%eax
405a6a:	75 1a                	jne    0x405a86
405a6c:	0f b7 02             	movzwl (%edx),%eax
405a6f:	33 c9                	xor    %ecx,%ecx