4055be:	57                   	push   %edi
4055bf:	ff 15 5c f0 40 00    	call   *0x40f05c
4055c5:	6a f5                	push   $0xfffffff5
4055c7:	ff 15 84 f0 40 00    	call   *0x40f084
4055cd:	a3 c0 eb 40 00       	mov    %eax,0x40ebc0
4055d2:	83 f8 ff             	cmp    $0xffffffff,%eax
4055d5:	0f 84 40 12 00 00    	je     0x40681b
4055db:	83 7c 24 18 02       	cmpl   $0x2,0x18(%esp)
4055e0:	0f 82 42 12 00 00    	jb     0x406828
4055e6:	38 1d c4 eb 40 00    	cmp    %bl,0x40ebc4
4055ec:	0f 85 42 12 00 00    	jne    0x406834
4055f2:	8b 7c 24 5c          	mov    0x5c(%esp),%edi
4055f6:	6a 02                	push   $0x2
4055f8:	68 d4 11 40 00       	push   $0x4011d4
4055fd:	ff 77 04             	push   0x4(%edi)
405600:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
405604:	be 01 00 00 00       	mov    $0x1,%esi
405609:	89 5c 24 28          	mov    %ebx,0x28(%esp)
40560d:	ff 15 08 f1 40 00    	call   *0x40f108
405613:	83 c4 0c             	add    $0xc,%esp
405616:	85 c0                	test   %eax,%eax
405618:	0f 84 53 12 00 00    	je     0x406871
40561e:	8b 4c 24 10          	mov    0x10(%esp),%ecx
405622:	8d 3c b5 00 00 00 00 	lea    0x0(,%esi,4),%edi
405629:	68 c8 11 40 00       	push   $0x4011c8
40562e:	ff 34 0f             	push   (%edi,%ecx,1)
405631:	ff 15 28 f1 40 00    	call   *0x40f128
405637:	83 c4 08             	add    $0x8,%esp
40563a:	85 c0                	test   %eax,%eax
40563c:	0f 85 55 12 00 00    	jne    0x406897
405642:	c7 44 24 40 01 00 00 	movl   $0x1,0x40(%esp)
405649:	00
40564a:	8d 46 01             	lea    0x1(%esi),%eax
40564d:	89 5c 24 4c          	mov    %ebx,0x4c(%esp)
405651:	89 5c 24 28          	mov    %ebx,0x28(%esp)
405655:	8b f8                	mov    %eax,%edi
405657:	33 db                	xor    %ebx,%ebx
405659:	c7 44 24 2c 01 00 00 	movl   $0x1,0x2c(%esp)
405660:	00
405661:	c7 44 24 20 00 10 00 	movl   $0x1000,0x20(%esp)
405668:	00
405669:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
405670:	00
405671:	89 5c 24 38          	mov    %ebx,0x38(%esp)
405675:	89 44 24 3c          	mov    %eax,0x3c(%esp)
405679:	39 7c 24 18          	cmp    %edi,0x18(%esp)
40567d:	0f 86 98 01 00 00    	jbe    0x40581b
405683:	8b 5c 24 10          	mov    0x10(%esp),%ebx
405687:	eb 07                	jmp    0x405690
405689:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
405690:	8b 34 bb             	mov    (%ebx,%edi,4),%esi
405693:	b9 c0 11 40 00       	mov    $0x4011c0,%ecx
405698:	8b c6                	mov    %esi,%eax
40569a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
4056a0:	66 8b 10             	mov    (%eax),%dx
4056a3:	66 3b 11             	cmp    (%ecx),%dx
4056a6:	0f 85 04 02 00 00    	jne    0x4058b0
4056ac:	66 85 d2             	test   %dx,%dx
4056af:	74 19                	je     0x4056ca
4056b1:	66 8b 50 02          	mov    0x2(%eax),%dx
4056b5:	66 3b 51 02          	cmp    0x2(%ecx),%dx
4056b9:	0f 85 f1 01 00 00    	jne    0x4058b0
4056bf:	83 c0 04             	add    $0x4,%eax
4056c2:	83 c1 04             	add    $0x4,%ecx
4056c5:	66 85 d2             	test   %dx,%dx
4056c8:	75 d6                	jne    0x4056a0
4056ca:	33 c0                	xor    %eax,%eax
4056cc:	85 c0                	test   %eax,%eax
4056ce:	0f 84 44 28 00 00    	je     0x407f18
4056d4:	b9 b4 11 40 00       	mov    $0x4011b4,%ecx
4056d9:	8b c6                	mov    %esi,%eax
4056db:	eb 03                	jmp    0x4056e0
4056dd:	8d 49 00             	lea    0x0(%ecx),%ecx
4056e0:	66 8b 10             	mov    (%eax),%dx
4056e3:	66 3b 11             	cmp    (%ecx),%dx
4056e6:	0f 85 ce 01 00 00    	jne    0x4058ba
4056ec:	66 85 d2             	test   %dx,%dx
4056ef:	74 19                	je     0x40570a
4056f1:	66 8b 50 02          	mov    0x2(%eax),%dx
4056f5:	66 3b 51 02          	cmp    0x2(%ecx),%dx
4056f9:	0f 85 bb 01 00 00    	jne    0x4058ba
4056ff:	83 c0 04             	add    $0x4,%eax
405702:	83 c1 04             	add    $0x4,%ecx
405705:	66 85 d2             	test   %dx,%dx
405708:	75 d6                	jne    0x4056e0
40570a:	33 c0                	xor    %eax,%eax
40570c:	85 c0                	test   %eax,%eax
40570e:	0f 84 1f 28 00 00    	je     0x407f33
405714:	b9 a4 11 40 00       	mov    $0x4011a4,%ecx
405719:	8b c6                	mov    %esi,%eax
40571b:	eb 03                	jmp    0x405720
40571d:	8d 49 00             	lea    0x0(%ecx),%ecx
405720:	66 8b 10             	mov    (%eax),%dx
405723:	66 3b 11             	cmp    (%ecx),%dx
405726:	0f 85 98 01 00 00    	jne    0x4058c4
40572c:	66 85 d2             	test   %dx,%dx
40572f:	74 19                	je     0x40574a
405731:	66 8b 50 02          	mov    0x2(%eax),%dx
405735:	66 3b 51 02          	cmp    0x2(%ecx),%dx
405739:	0f 85 85 01 00 00    	jne    0x4058c4
40573f:	83 c0 04             	add    $0x4,%eax
405742:	83 c1 04             	add    $0x4,%ecx
405745:	66 85 d2             	test   %dx,%dx
405748:	75 d6                	jne    0x405720
40574a:	33 c0                	xor    %eax,%eax
40574c:	85 c0                	test   %eax,%eax
40574e:	0f 84 01 2b 00 00    	je     0x408255
405754:	b9 94 11 40 00       	mov    $0x401194,%ecx
405759:	8b c6                	mov    %esi,%eax
40575b:	eb 03                	jmp    0x405760
40575d:	8d 49 00             	lea    0x0(%ecx),%ecx
405760:	66 8b 10             	mov    (%eax),%dx
405763:	66 3b 11             	cmp    (%ecx),%dx
405766:	0f 85 62 01 00 00    	jne    0x4058ce
40576c:	66 85 d2             	test   %dx,%dx
40576f:	74 19                	je     0x40578a
405771:	66 8b 50 02          	mov    0x2(%eax),%dx
405775:	66 3b 51 02          	cmp    0x2(%ecx),%dx
405779:	0f 85 4f 01 00 00    	jne    0x4058ce
40577f:	83 c0 04             	add    $0x4,%eax
405782:	83 c1 04             	add    $0x4,%ecx
405785:	66 85 d2             	test   %dx,%dx
405788:	75 d6                	jne    0x405760
40578a:	33 c0                	xor    %eax,%eax
40578c:	85 c0                	test   %eax,%eax
40578e:	0f 84 98 2b 00 00    	je     0x40832c
405794:	b8 80 11 40 00       	mov    $0x401180,%eax
405799:	8b ce                	mov    %esi,%ecx
40579b:	eb 03                	jmp    0x4057a0
40579d:	8d 49 00             	lea    0x0(%ecx),%ecx
4057a0:	66 8b 11             	mov    (%ecx),%dx
4057a3:	66 3b 10             	cmp    (%eax),%dx
4057a6:	0f 85 2c 01 00 00    	jne    0x4058d8
4057ac:	66 85 d2             	test   %dx,%dx
4057af:	74 19                	je     0x4057ca
4057b1:	66 8b 51 02          	mov    0x2(%ecx),%dx
4057b5:	66 3b 50 02          	cmp    0x2(%eax),%dx
4057b9:	0f 85 19 01 00 00    	jne    0x4058d8
4057bf:	83 c1 04             	add    $0x4,%ecx
4057c2:	83 c0 04             	add    $0x4,%eax
4057c5:	66 85 d2             	test   %dx,%dx
4057c8:	75 d6                	jne    0x4057a0
4057ca:	33 c0                	xor    %eax,%eax
4057cc:	85 c0                	test   %eax,%eax
4057ce:	0f 84 75 2b 00 00    	je     0x408349
4057d4:	3b 7c 24 3c          	cmp    0x3c(%esp),%edi
4057d8:	0f 85 d6 2b 00 00    	jne    0x4083b4
4057de:	8b c6                	mov    %esi,%eax
4057e0:	6a 3d                	push   $0x3d
4057e2:	50                   	push   %eax
4057e3:	89 44 24 3c          	mov    %eax,0x3c(%esp)
4057e7:	ff 15 18 f1 40 00    	call   *0x40f118
4057ed:	83 c4 08             	add    $0x8,%esp
4057f0:	85 c0                	test   %eax,%eax
4057f2:	0f 85 aa 2b 00 00    	jne    0x4083a2
4057f8:	8b 74 24 18          	mov    0x18(%esp),%esi
4057fc:	33 d2                	xor    %edx,%edx
4057fe:	89 54 24 14          	mov    %edx,0x14(%esp)
405802:	47                   	inc    %edi
405803:	47                   	inc    %edi
405804:	3b f7                	cmp    %edi,%esi
405806:	0f 87 84 fe ff ff    	ja     0x405690
40580c:	83 7c 24 20 00       	cmpl   $0x0,0x20(%esp)
405811:	8b 5c 24 38          	mov    0x38(%esp),%ebx
405815:	0f 84 7c 2b 00 00    	je     0x408397
40581b:	ff 74 24 20          	push   0x20(%esp)
40581f:	6a 00                	push   $0x0
405821:	ff 15 64 f0 40 00    	call   *0x40f064
405827:	8b f8                	mov    %eax,%edi
405829:	89 7c 24 50          	mov    %edi,0x50(%esp)
40582d:	85 ff                	test   %edi,%edi
40582f:	0f 84 b3 10 00 00    	je     0x4068e8
405835:	8b 54 24 14          	mov    0x14(%esp),%edx
405839:	85 d2                	test   %edx,%edx
40583b:	0f 85 85 2b 00 00    	jne    0x4083c6
405841:	85 db                	test   %ebx,%ebx
405843:	0f 85 21 2d 00 00    	jne    0x40856a
405849:	6a 01                	push   $0x1
40584b:	53                   	push   %ebx
40584c:	ff 74 24 24          	push   0x24(%esp)
405850:	ff 15 4c 00 41 00    	call   *0x41004c
405856:	8b f0                	mov    %eax,%esi
405858:	89 74 24 14          	mov    %esi,0x14(%esp)
40585c:	85 f6                	test   %esi,%esi
40585e:	0f 84 8e 14 00 00    	je     0x406cf2
405864:	6a 04                	push   $0x4
405866:	ff 74 24 38          	push   0x38(%esp)
40586a:	56                   	push   %esi
40586b:	ff 15 3c 00 41 00    	call   *0x41003c
405871:	89 44 24 24          	mov    %eax,0x24(%esp)
405875:	85 c0                	test   %eax,%eax
405877:	74 69                	je     0x4058e2
405879:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
40587d:	39 5c 24 40          	cmp    %ebx,0x40(%esp)
405881:	0f 84 28 2d 00 00    	je     0x4085af
405887:	57                   	push   %edi
405888:	50                   	push   %eax
405889:	ff 15 88 00 41 00    	call   *0x410088
40588f:	85 c0                	test   %eax,%eax
405891:	0f 84 33 2d 00 00    	je     0x4085ca
405897:	ff 74 24 40          	push   0x40(%esp)
40589b:	8b 4c 24 38          	mov    0x38(%esp),%ecx
40589f:	8d 44 24 20          	lea    0x20(%esp),%eax
4058a3:	50                   	push   %eax
4058a4:	33 d2                	xor    %edx,%edx
4058a6:	e8 e5 01 00 00       	call   0x405a90
4058ab:	e9 52 01 00 00       	jmp    0x405a02
4058b0:	1b c0                	sbb    %eax,%eax
4058b2:	83 c8 01             	or     $0x1,%eax
4058b5:	e9 12 fe ff ff       	jmp    0x4056cc
4058ba:	1b c0                	sbb    %eax,%eax
4058bc:	83 c8 01             	or     $0x1,%eax
4058bf:	e9 48 fe ff ff       	jmp    0x40570c
4058c4:	1b c0                	sbb    %eax,%eax
4058c6:	83 c8 01             	or     $0x1,%eax
4058c9:	e9 7e fe ff ff       	jmp    0x40574c
4058ce:	1b c0                	sbb    %eax,%eax
4058d0:	83 c8 01             	or     $0x1,%eax
4058d3:	e9 b4 fe ff ff       	jmp    0x40578c
4058d8:	1b c0                	sbb    %eax,%eax
4058da:	83 c8 01             	or     $0x1,%eax
4058dd:	e9 ea fe ff ff       	jmp    0x4057cc
4058e2:	ff 15 40 f0 40 00    	call   *0x40f040
4058e8:	8b d8                	mov    %eax,%ebx
4058ea:	be 65 00 00 00       	mov    $0x65,%esi
4058ef:	6a 0a                	push   $0xa
4058f1:	8d 44 24 74          	lea    0x74(%esp),%eax
4058f5:	50                   	push   %eax
4058f6:	53                   	push   %ebx
4058f7:	ff 15 20 f1 40 00    	call   *0x40f120
4058fd:	83 c4 0c             	add    $0xc,%esp
405900:	c7 44 24 64 e0 11 40 	movl   $0x4011e0,0x64(%esp)
405907:	00
405908:	8d 44 24 70          	lea    0x70(%esp),%eax
40590c:	89 44 24 68          	mov    %eax,0x68(%esp)
405910:	33 c0                	xor    %eax,%eax
405912:	66 a3 c0 e3 40 00    	mov    %ax,0x40e3c0
405918:	50                   	push   %eax
405919:	68 00 04 00 00       	push   $0x400
40591e:	68 c0 e3 40 00       	push   $0x40e3c0
405923:	50                   	push   %eax
405924:	53                   	push   %ebx
405925:	50                   	push   %eax
405926:	68 00 12 00 00       	push   $0x1200
40592b:	ff 15 78 f0 40 00    	call   *0x40f078
405931:	66 83 3d c0 e3 40 00 	cmpw   $0x0,0x40e3c0
405938:	00
405939:	c7 44 24 6c c0 e3 40 	movl   $0x40e3c0,0x6c(%esp)
405940:	00
405941:	0f 84 2d 2c 00 00    	je     0x408574
405947:	6a 25                	push   $0x25
405949:	68 c0 e3 40 00       	push   $0x40e3c0
40594e:	ff 15 18 f1 40 00    	call   *0x40f118
405954:	83 c4 08             	add    $0x8,%esp
405957:	85 c0                	test   %eax,%eax
405959:	0f 85 15 2c 00 00    	jne    0x408574
40595f:	8d 44 24 64          	lea    0x64(%esp),%eax
405963:	50                   	push   %eax
405964:	6a 02                	push   $0x2
405966:	8d 44 24 38          	lea    0x38(%esp),%eax
40596a:	50                   	push   %eax
40596b:	6a 00                	push   $0x0
40596d:	56                   	push   %esi
40596e:	6a 00                	push   $0x0
405970:	68 00 29 00 00       	push   $0x2900
405975:	ff 15 78 f0 40 00    	call   *0x40f078
40597b:	85 c0                	test   %eax,%eax
40597d:	74 7f                	je     0x4059fe
40597f:	8b 35 c0 eb 40 00    	mov    0x40ebc0,%esi
405985:	8b 7c 24 30          	mov    0x30(%esp),%edi
405989:	56                   	push   %esi
40598a:	89 44 24 30          	mov    %eax,0x30(%esp)
40598e:	ff 15 50 f0 40 00    	call   *0x40f050
405994:	25 ff 7f ff ff       	and    $0xffff7fff,%eax
405999:	83 f8 02             	cmp    $0x2,%eax
40599c:	0f 84 dc 2b 00 00    	je     0x40857e
4059a2:	8b 44 24 2c          	mov    0x2c(%esp),%eax
4059a6:	03 c0                	add    %eax,%eax
4059a8:	50                   	push   %eax
4059a9:	6a 00                	push   $0x0
4059ab:	ff 15 64 f0 40 00    	call   *0x40f064
4059b1:	8b f0                	mov    %eax,%esi
4059b3:	85 f6                	test   %esi,%esi
4059b5:	74 3d                	je     0x4059f4
4059b7:	8b 54 24 2c          	mov    0x2c(%esp),%edx
4059bb:	6a 00                	push   $0x0
4059bd:	6a 00                	push   $0x0
4059bf:	8d 0c 12             	lea    (%edx,%edx,1),%ecx
4059c2:	51                   	push   %ecx
4059c3:	56                   	push   %esi
4059c4:	52                   	push   %edx
4059c5:	57                   	push   %edi
4059c6:	6a 00                	push   $0x0
4059c8:	6a 01                	push   $0x1
4059ca:	ff 15 a8 f0 40 00    	call   *0x40f0a8
4059d0:	89 44 24 2c          	mov    %eax,0x2c(%esp)
4059d4:	85 c0                	test   %eax,%eax
4059d6:	74 15                	je     0x4059ed
4059d8:	6a 00                	push   $0x0
4059da:	8d 4c 24 30          	lea    0x30(%esp),%ecx
4059de:	51                   	push   %ecx
4059df:	50                   	push   %eax
4059e0:	56                   	push   %esi
4059e1:	ff 35 c0 eb 40 00    	push   0x40ebc0
4059e7:	ff 15 54 f0 40 00    	call   *0x40f054
4059ed:	56                   	push   %esi
4059ee:	ff 15 68 f0 40 00    	call   *0x40f068
4059f4:	ff 74 24 30          	push   0x30(%esp)
4059f8:	ff 15 68 f0 40 00    	call   *0x40f068
4059fe:	8b 74 24 14          	mov    0x14(%esp),%esi
405a02:	8b 7c 24 10          	mov    0x10(%esp),%edi
405a06:	ff 74 24 50          	push   0x50(%esp)
405a0a:	ff 15 68 f0 40 00    	call   *0x40f068
405a10:	8b 44 24 24          	mov    0x24(%esp),%eax
405a14:	85 c0                	test   %eax,%eax
405a16:	74 07                	je     0x405a1f
405a18:	50                   	push   %eax
405a19:	ff 15 48 00 41 00    	call   *0x410048
405a1f:	85 f6                	test   %esi,%esi
405a21:	74 07                	je     0x405a2a
405a23:	56                   	push   %esi
405a24:	ff 15 48 00 41 00    	call   *0x410048
405a2a:	3b 7c 24 5c          	cmp    0x5c(%esp),%edi
405a2e:	75 21                	jne    0x405a51
405a30:	ff 74 24 60          	push   0x60(%esp)
405a34:	ff 15 68 f0 40 00    	call   *0x40f068
405a3a:	8b 8c 24 9c 00 00 00 	mov    0x9c(%esp),%ecx
405a41:	8b c3                	mov    %ebx,%eax
405a43:	5f                   	pop    %edi
405a44:	5e                   	pop    %esi
405a45:	5b                   	pop    %ebx
405a46:	33 cc                	xor    %esp,%ecx
405a48:	e8 d3 05 00 00       	call   0x406020
405a4d:	8b e5                	mov    %ebp,%esp
405a4f:	5d                   	pop    %ebp
405a50:	c3                   	ret
405a51:	57                   	push   %edi
405a52:	ff 15 68 f0 40 00    	call   *0x40f068
405a58:	eb d6                	jmp    0x405a30
405a5a:	cc                   	int3
405a5b:	cc                   	int3
405a5c:	cc                   	int3
405a5d:	cc                   	int3
405a5e:	cc                   	int3
405a5f:	cc                   	int3
405a60:	8b ff                	mov    %edi,%edi
405a62:	55                   	push   %ebp
405a63:	8b ec                	mov    %esp,%ebp
405a65:	ff 35 cc 51 40 00    	push   0x4051cc
405a6b:	ff 75 0c             	push   0xc(%ebp)