40b711:	c2 04 00             	ret    $0x4
40b714:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40b717:	83 ce ff             	or     $0xffffffff,%esi
40b71a:	89 5d c0             	mov    %ebx,-0x40(%ebp)
40b71d:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
40b720:	89 5d c8             	mov    %ebx,-0x38(%ebp)
40b723:	8d 45 cc             	lea    -0x34(%ebp),%eax
40b726:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40b72a:	50                   	push   %eax
40b72b:	8d 45 c0             	lea    -0x40(%ebp),%eax
40b72e:	33 d2                	xor    %edx,%edx
40b730:	50                   	push   %eax
40b731:	51                   	push   %ecx
40b732:	42                   	inc    %edx
40b733:	8b cf                	mov    %edi,%ecx
40b735:	e8 2b c9 ff ff       	call   0x408065
40b73a:	85 c0                	test   %eax,%eax
40b73c:	0f 85 85 01 00 00    	jne    0x40b8c7
40b742:	8b 7d cc             	mov    -0x34(%ebp),%edi
40b745:	39 5f 0c             	cmp    %ebx,0xc(%edi)
40b748:	0f 84 6e 01 00 00    	je     0x40b8bc
40b74e:	8b 3f                	mov    (%edi),%edi
40b750:	8d 45 d0             	lea    -0x30(%ebp),%eax
40b753:	50                   	push   %eax
40b754:	57                   	push   %edi
40b755:	ff 15 24 20 41 00    	call   *0x412024
40b75b:	85 c0                	test   %eax,%eax
40b75d:	75 10                	jne    0x40b76f
40b75f:	ff 15 70 20 41 00    	call   *0x412070
40b765:	68 6c 2e 40 00       	push   $0x402e6c
40b76a:	e9 5d 01 00 00       	jmp    0x40b8cc
40b76f:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
40b773:	76 43                	jbe    0x40b7b8
40b775:	8d 45 cc             	lea    -0x34(%ebp),%eax
40b778:	50                   	push   %eax
40b779:	8d 45 c0             	lea    -0x40(%ebp),%eax
40b77c:	50                   	push   %eax
40b77d:	51                   	push   %ecx
40b77e:	53                   	push   %ebx
40b77f:	6a 02                	push   $0x2
40b781:	5a                   	pop    %edx
40b782:	8b cf                	mov    %edi,%ecx
40b784:	e8 72 c9 ff ff       	call   0x4080fb
40b789:	85 c0                	test   %eax,%eax
40b78b:	75 6c                	jne    0x40b7f9
40b78d:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b791:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40b794:	73 03                	jae    0x40b799
40b796:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b799:	8b 45 cc             	mov    -0x34(%ebp),%eax
40b79c:	6a ff                	push   $0xffffffff
40b79e:	51                   	push   %ecx
40b79f:	6a ff                	push   $0xffffffff
40b7a1:	ff 30                	push   (%eax)
40b7a3:	6a 01                	push   $0x1
40b7a5:	6a 7f                	push   $0x7f
40b7a7:	ff 15 f4 20 41 00    	call   *0x4120f4
40b7ad:	83 f8 02             	cmp    $0x2,%eax
40b7b0:	74 43                	je     0x40b7f5
40b7b2:	43                   	inc    %ebx
40b7b3:	3b 5d d0             	cmp    -0x30(%ebp),%ebx
40b7b6:	72 bd                	jb     0x40b775
40b7b8:	8b 5d bc             	mov    -0x44(%ebp),%ebx
40b7bb:	8d 45 d7             	lea    -0x29(%ebp),%eax
40b7be:	50                   	push   %eax
40b7bf:	6a 00                	push   $0x0
40b7c1:	68 fc 3f 40 00       	push   $0x403ffc
40b7c6:	8b 4b 08             	mov    0x8(%ebx),%ecx
40b7c9:	68 dc 3f 40 00       	push   $0x403fdc
40b7ce:	e8 d8 b1 ff ff       	call   0x4069ab
40b7d3:	84 c0                	test   %al,%al
40b7d5:	0f 84 9f 00 00 00    	je     0x40b87a
40b7db:	83 fe ff             	cmp    $0xffffffff,%esi
40b7de:	74 23                	je     0x40b803
40b7e0:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b7e3:	e8 f3 ac ff ff       	call   0x4064db
40b7e8:	50                   	push   %eax
40b7e9:	6a 27                	push   $0x27
40b7eb:	68 b7 00 00 00       	push   $0xb7
40b7f0:	e9 da 00 00 00       	jmp    0x40b8cf
40b7f5:	8b f3                	mov    %ebx,%esi
40b7f7:	eb bf                	jmp    0x40b7b8
40b7f9:	68 c0 2e 40 00       	push   $0x402ec0
40b7fe:	e9 c9 00 00 00       	jmp    0x40b8cc
40b803:	8b 75 d0             	mov    -0x30(%ebp),%esi
40b806:	56                   	push   %esi
40b807:	57                   	push   %edi
40b808:	ff 15 10 20 41 00    	call   *0x412010
40b80e:	85 c0                	test   %eax,%eax
40b810:	75 12                	jne    0x40b824
40b812:	68 50 2e 40 00       	push   $0x402e50
40b817:	6a 0f                	push   $0xf
40b819:	ff 15 70 20 41 00    	call   *0x412070
40b81f:	e9 aa 00 00 00       	jmp    0x40b8ce
40b824:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b828:	8b 45 d8             	mov    -0x28(%ebp),%eax
40b82b:	c7 45 b8 04 00 00 00 	movl   $0x4,-0x48(%ebp)
40b832:	73 03                	jae    0x40b837
40b834:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b837:	89 45 ac             	mov    %eax,-0x54(%ebp)
40b83a:	8d 45 ac             	lea    -0x54(%ebp),%eax
40b83d:	50                   	push   %eax
40b83e:	6a 00                	push   $0x0
40b840:	56                   	push   %esi
40b841:	6a 02                	push   $0x2
40b843:	57                   	push   %edi
40b844:	ff 15 14 20 41 00    	call   *0x412014
40b84a:	85 c0                	test   %eax,%eax
40b84c:	75 07                	jne    0x40b855
40b84e:	68 c0 2e 40 00       	push   $0x402ec0
40b853:	eb c2                	jmp    0x40b817
40b855:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b859:	8b 45 d8             	mov    -0x28(%ebp),%eax
40b85c:	73 03                	jae    0x40b861
40b85e:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b861:	56                   	push   %esi
40b862:	50                   	push   %eax
40b863:	57                   	push   %edi
40b864:	8b cb                	mov    %ebx,%ecx
40b866:	e8 65 fc ff ff       	call   0x40b4d0
40b86b:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b86e:	e8 a4 a6 ff ff       	call   0x405f17
40b873:	6a 00                	push   $0x0
40b875:	e9 88 fe ff ff       	jmp    0x40b702
40b87a:	8b 4b 08             	mov    0x8(%ebx),%ecx
40b87d:	8d 45 d7             	lea    -0x29(%ebp),%eax
40b880:	50                   	push   %eax
40b881:	6a 00                	push   $0x0
40b883:	68 28 40 40 00       	push   $0x404028
40b888:	68 04 40 40 00       	push   $0x404004
40b88d:	e8 19 b1 ff ff       	call   0x4069ab
40b892:	84 c0                	test   %al,%al
40b894:	74 13                	je     0x40b8a9
40b896:	83 fe ff             	cmp    $0xffffffff,%esi
40b899:	74 13                	je     0x40b8ae
40b89b:	56                   	push   %esi
40b89c:	57                   	push   %edi
40b89d:	ff 15 0c 20 41 00    	call   *0x41200c
40b8a3:	85 c0                	test   %eax,%eax
40b8a5:	75 c4                	jne    0x40b86b
40b8a7:	eb a5                	jmp    0x40b84e
40b8a9:	83 fe ff             	cmp    $0xffffffff,%esi
40b8ac:	75 a7                	jne    0x40b855
40b8ae:	68 c0 2e 40 00       	push   $0x402ec0
40b8b3:	6a 0f                	push   $0xf
40b8b5:	68 90 04 00 00       	push   $0x490
40b8ba:	eb 13                	jmp    0x40b8cf
40b8bc:	68 50 2e 40 00       	push   $0x402e50
40b8c1:	6a 0e                	push   $0xe
40b8c3:	6a 0d                	push   $0xd
40b8c5:	eb 08                	jmp    0x40b8cf
40b8c7:	68 50 2e 40 00       	push   $0x402e50
40b8cc:	6a 0e                	push   $0xe
40b8ce:	50                   	push   %eax
40b8cf:	e8 41 bd ff ff       	call   0x407615
40b8d4:	cc                   	int3
40b8d5:	6a 34                	push   $0x34
40b8d7:	b8 16 f3 40 00       	mov    $0x40f316,%eax
40b8dc:	e8 6d 2d 00 00       	call   0x40e64e
40b8e1:	8b f9                	mov    %ecx,%edi
40b8e3:	33 c0                	xor    %eax,%eax
40b8e5:	89 45 e0             	mov    %eax,-0x20(%ebp)
40b8e8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b8eb:	89 45 e8             	mov    %eax,-0x18(%ebp)
40b8ee:	89 45 ec             	mov    %eax,-0x14(%ebp)
40b8f1:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40b8f4:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40b8f7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40b8fa:	53                   	push   %ebx
40b8fb:	ff 75 08             	push   0x8(%ebp)
40b8fe:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40b902:	ff 15 10 20 41 00    	call   *0x412010
40b908:	85 c0                	test   %eax,%eax
40b90a:	0f 84 3d 03 00 00    	je     0x40bc4d
40b910:	8b 45 10             	mov    0x10(%ebp),%eax
40b913:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40b916:	51                   	push   %ecx
40b917:	53                   	push   %ebx
40b918:	50                   	push   %eax
40b919:	8b 30                	mov    (%eax),%esi
40b91b:	8b 4e 1c             	mov    0x1c(%esi),%ecx
40b91e:	ff 15 10 22 41 00    	call   *0x412210
40b924:	ff 56 1c             	call   *0x1c(%esi)
40b927:	85 c0                	test   %eax,%eax
40b929:	79 0c                	jns    0x40b937
40b92b:	68 50 2e 40 00       	push   $0x402e50
40b930:	6a 0f                	push   $0xf
40b932:	e9 23 03 00 00       	jmp    0x40bc5a
40b937:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40b93a:	8d 45 e0             	lea    -0x20(%ebp),%eax
40b93d:	50                   	push   %eax
40b93e:	ba 58 42 40 00       	mov    $0x404258,%edx
40b943:	c7 45 cc 04 00 00 00 	movl   $0x4,-0x34(%ebp)
40b94a:	e8 f7 c2 ff ff       	call   0x407c46
40b94f:	85 c0                	test   %eax,%eax
40b951:	79 07                	jns    0x40b95a
40b953:	68 c0 2e 40 00       	push   $0x402ec0
40b958:	eb d6                	jmp    0x40b930
40b95a:	8b 45 e0             	mov    -0x20(%ebp),%eax
40b95d:	33 f6                	xor    %esi,%esi
40b95f:	89 45 c0             	mov    %eax,-0x40(%ebp)
40b962:	8d 45 c0             	lea    -0x40(%ebp),%eax
40b965:	50                   	push   %eax
40b966:	56                   	push   %esi
40b967:	53                   	push   %ebx
40b968:	6a 02                	push   $0x2
40b96a:	ff 75 08             	push   0x8(%ebp)
40b96d:	ff 15 14 20 41 00    	call   *0x412014
40b973:	85 c0                	test   %eax,%eax
40b975:	75 0a                	jne    0x40b981
40b977:	68 c0 2e 40 00       	push   $0x402ec0
40b97c:	e9 d1 02 00 00       	jmp    0x40bc52
40b981:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40b984:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b987:	50                   	push   %eax
40b988:	ba 68 42 40 00       	mov    $0x404268,%edx
40b98d:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
40b994:	e8 ad c2 ff ff       	call   0x407c46
40b999:	85 c0                	test   %eax,%eax
40b99b:	79 07                	jns    0x40b9a4
40b99d:	68 08 2f 40 00       	push   $0x402f08
40b9a2:	eb 8c                	jmp    0x40b930
40b9a4:	83 f8 01             	cmp    $0x1,%eax
40b9a7:	74 51                	je     0x40b9fa
40b9a9:	39 75 e8             	cmp    %esi,-0x18(%ebp)
40b9ac:	74 4c                	je     0x40b9fa
40b9ae:	ff 75 e8             	push   -0x18(%ebp)
40b9b1:	ff 15 04 40 41 00    	call   *0x414004
40b9b7:	85 c0                	test   %eax,%eax
40b9b9:	74 3f                	je     0x40b9fa
40b9bb:	6a ff                	push   $0xffffffff
40b9bd:	68 80 24 40 00       	push   $0x402480
40b9c2:	6a ff                	push   $0xffffffff
40b9c4:	ff 75 e8             	push   -0x18(%ebp)
40b9c7:	6a 01                	push   $0x1
40b9c9:	6a 7f                	push   $0x7f
40b9cb:	ff 15 f4 20 41 00    	call   *0x4120f4
40b9d1:	83 f8 02             	cmp    $0x2,%eax
40b9d4:	74 24                	je     0x40b9fa
40b9d6:	6a ff                	push   $0xffffffff
40b9d8:	68 8c 24 40 00       	push   $0x40248c
40b9dd:	6a ff                	push   $0xffffffff
40b9df:	ff 75 e8             	push   -0x18(%ebp)
40b9e2:	6a 01                	push   $0x1
40b9e4:	6a 7f                	push   $0x7f
40b9e6:	ff 15 f4 20 41 00    	call   *0x4120f4
40b9ec:	83 f8 02             	cmp    $0x2,%eax
40b9ef:	0f 85 6b 02 00 00    	jne    0x40bc60
40b9f5:	89 75 c0             	mov    %esi,-0x40(%ebp)
40b9f8:	eb 07                	jmp    0x40ba01
40b9fa:	c7 45 c0 01 00 00 00 	movl   $0x1,-0x40(%ebp)
40ba01:	8d 45 c0             	lea    -0x40(%ebp),%eax
40ba04:	50                   	push   %eax
40ba05:	56                   	push   %esi
40ba06:	53                   	push   %ebx
40ba07:	6a 03                	push   $0x3
40ba09:	ff 75 08             	push   0x8(%ebp)
40ba0c:	ff 15 14 20 41 00    	call   *0x412014
40ba12:	85 c0                	test   %eax,%eax
40ba14:	75 0a                	jne    0x40ba20
40ba16:	68 08 2f 40 00       	push   $0x402f08
40ba1b:	e9 32 02 00 00       	jmp    0x40bc52
40ba20:	8b 4f 08             	mov    0x8(%edi),%ecx
40ba23:	8d 45 d8             	lea    -0x28(%ebp),%eax
40ba26:	68 f0 40 40 00       	push   $0x4040f0
40ba2b:	68 3c 2c 40 00       	push   $0x402c3c
40ba30:	50                   	push   %eax
40ba31:	8b 71 08             	mov    0x8(%ecx),%esi
40ba34:	e8 4e 99 ff ff       	call   0x405387
40ba39:	39 30                	cmp    %esi,(%eax)
40ba3b:	74 23                	je     0x40ba60
40ba3d:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
40ba41:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40ba44:	85 c0                	test   %eax,%eax
40ba46:	74 10                	je     0x40ba58
40ba48:	8b 08                	mov    (%eax),%ecx
40ba4a:	50                   	push   %eax
40ba4b:	8b 71 08             	mov    0x8(%ecx),%esi
40ba4e:	8b ce                	mov    %esi,%ecx
40ba50:	ff 15 10 22 41 00    	call   *0x412210
40ba56:	ff d6                	call   *%esi
40ba58:	33 f6                	xor    %esi,%esi
40ba5a:	56                   	push   %esi
40ba5b:	e9 c4 01 00 00       	jmp    0x40bc24
40ba60:	8b 4f 08             	mov    0x8(%edi),%ecx
40ba63:	33 c0                	xor    %eax,%eax
40ba65:	88 45 f3             	mov    %al,-0xd(%ebp)
40ba68:	8d 45 f3             	lea    -0xd(%ebp),%eax
40ba6b:	50                   	push   %eax
40ba6c:	68 7c 24 40 00       	push   $0x40247c
40ba71:	68 c4 40 40 00       	push   $0x4040c4
40ba76:	68 50 2f 40 00       	push   $0x402f50
40ba7b:	e8 ca ae ff ff       	call   0x40694a
40ba80:	ff 75 ec             	push   -0x14(%ebp)
40ba83:	8b f0                	mov    %eax,%esi
40ba85:	ff 15 0c 40 41 00    	call   *0x41400c
40ba8b:	56                   	push   %esi
40ba8c:	ff 15 08 40 41 00    	call   *0x414008
40ba92:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
40ba96:	89 45 ec             	mov    %eax,-0x14(%ebp)
40ba99:	75 51                	jne    0x40baec
40ba9b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40ba9e:	8d 45 ec             	lea    -0x14(%ebp),%eax
40baa1:	be 50 2f 40 00       	mov    $0x402f50,%esi
40baa6:	50                   	push   %eax
40baa7:	8b d6                	mov    %esi,%edx
40baa9:	e8 98 c1 ff ff       	call   0x407c46
40baae:	85 c0                	test   %eax,%eax
40bab0:	79 06                	jns    0x40bab8
40bab2:	56                   	push   %esi
40bab3:	e9 78 fe ff ff       	jmp    0x40b930
40bab8:	0f 85 48 01 00 00    	jne    0x40bc06
40babe:	8b 45 ec             	mov    -0x14(%ebp),%eax
40bac1:	85 c0                	test   %eax,%eax
40bac3:	0f 84 d6 00 00 00    	je     0x40bb9f
40bac9:	50                   	push   %eax
40baca:	ff 15 04 40 41 00    	call   *0x414004
40bad0:	85 c0                	test   %eax,%eax
40bad2:	0f 84 c4 00 00 00    	je     0x40bb9c
40bad8:	8d 47 48             	lea    0x48(%edi),%eax
40badb:	50                   	push   %eax
40badc:	ff 75 ec             	push   -0x14(%ebp)
40badf:	ff 75 e0             	push   -0x20(%ebp)
40bae2:	e8 2d 0d 00 00       	call   0x40c814
40bae7:	e9 b0 00 00 00       	jmp    0x40bb9c
40baec:	80 7f 54 00          	cmpb   $0x0,0x54(%edi)
40baf0:	0f 85 a9 00 00 00    	jne    0x40bb9f
40baf6:	85 c0                	test   %eax,%eax
40baf8:	0f 84 a1 00 00 00    	je     0x40bb9f
40bafe:	50                   	push   %eax
40baff:	ff 15 04 40 41 00    	call   *0x414004
40bb05:	85 c0                	test   %eax,%eax
40bb07:	0f 84 8f 00 00 00    	je     0x40bb9c
40bb0d:	8b 4f 08             	mov    0x8(%edi),%ecx
40bb10:	8d 45 f3             	lea    -0xd(%ebp),%eax
40bb13:	50                   	push   %eax
40bb14:	68 88 2c 40 00       	push   $0x402c88
40bb19:	68 e8 40 40 00       	push   $0x4040e8
40bb1e:	68 cc 40 40 00       	push   $0x4040cc
40bb23:	e8 22 ae ff ff       	call   0x40694a
40bb28:	8b f0                	mov    %eax,%esi
40bb2a:	89 75 d8             	mov    %esi,-0x28(%ebp)
40bb2d:	85 f6                	test   %esi,%esi
40bb2f:	74 58                	je     0x40bb89
40bb31:	68 88 2c 40 00       	push   $0x402c88
40bb36:	56                   	push   %esi
40bb37:	ff 15 a0 21 41 00    	call   *0x4121a0
40bb3d:	59                   	pop    %ecx
40bb3e:	59                   	pop    %ecx
40bb3f:	85 c0                	test   %eax,%eax