40bb41:	74 46                	je     0x40bb89
40bb43:	8b ce                	mov    %esi,%ecx
40bb45:	33 f6                	xor    %esi,%esi
40bb47:	8d 51 02             	lea    0x2(%ecx),%edx
40bb4a:	66 8b 01             	mov    (%ecx),%ax
40bb4d:	83 c1 02             	add    $0x2,%ecx
40bb50:	66 3b c6             	cmp    %si,%ax
40bb53:	75 f5                	jne    0x40bb4a
40bb55:	8d 77 48             	lea    0x48(%edi),%esi
40bb58:	2b ca                	sub    %edx,%ecx
40bb5a:	ff 76 04             	push   0x4(%esi)
40bb5d:	d1 f9                	sar    $1,%ecx
40bb5f:	8d 45 d0             	lea    -0x30(%ebp),%eax
40bb62:	ff 36                	push   (%esi)
40bb64:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40bb67:	8b ce                	mov    %esi,%ecx
40bb69:	50                   	push   %eax
40bb6a:	e8 35 be ff ff       	call   0x4079a4
40bb6f:	8b 45 dc             	mov    -0x24(%ebp),%eax
40bb72:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40bb75:	40                   	inc    %eax
40bb76:	ff 75 d0             	push   -0x30(%ebp)
40bb79:	8d 04 41             	lea    (%ecx,%eax,2),%eax
40bb7c:	50                   	push   %eax
40bb7d:	51                   	push   %ecx
40bb7e:	ff 36                	push   (%esi)
40bb80:	8b ce                	mov    %esi,%ecx
40bb82:	e8 c7 10 00 00       	call   0x40cc4e
40bb87:	eb 0f                	jmp    0x40bb98
40bb89:	8d 47 48             	lea    0x48(%edi),%eax
40bb8c:	50                   	push   %eax
40bb8d:	ff 75 ec             	push   -0x14(%ebp)
40bb90:	ff 75 e0             	push   -0x20(%ebp)
40bb93:	e8 7c 0c 00 00       	call   0x40c814
40bb98:	c6 47 54 01          	movb   $0x1,0x54(%edi)
40bb9c:	8b 45 ec             	mov    -0x14(%ebp),%eax
40bb9f:	6a 04                	push   $0x4
40bba1:	5e                   	pop    %esi
40bba2:	89 45 c0             	mov    %eax,-0x40(%ebp)
40bba5:	8d 45 c0             	lea    -0x40(%ebp),%eax
40bba8:	50                   	push   %eax
40bba9:	33 c0                	xor    %eax,%eax
40bbab:	89 75 cc             	mov    %esi,-0x34(%ebp)
40bbae:	50                   	push   %eax
40bbaf:	53                   	push   %ebx
40bbb0:	56                   	push   %esi
40bbb1:	ff 75 08             	push   0x8(%ebp)
40bbb4:	ff 15 14 20 41 00    	call   *0x412014
40bbba:	85 c0                	test   %eax,%eax
40bbbc:	75 0a                	jne    0x40bbc8
40bbbe:	68 50 2f 40 00       	push   $0x402f50
40bbc3:	e9 8a 00 00 00       	jmp    0x40bc52
40bbc8:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40bbcc:	89 75 cc             	mov    %esi,-0x34(%ebp)
40bbcf:	74 12                	je     0x40bbe3
40bbd1:	ff 75 ec             	push   -0x14(%ebp)
40bbd4:	ff 15 04 40 41 00    	call   *0x414004
40bbda:	85 c0                	test   %eax,%eax
40bbdc:	74 05                	je     0x40bbe3
40bbde:	8b 47 48             	mov    0x48(%edi),%eax
40bbe1:	eb 02                	jmp    0x40bbe5
40bbe3:	33 c0                	xor    %eax,%eax
40bbe5:	89 45 c0             	mov    %eax,-0x40(%ebp)
40bbe8:	8d 45 c0             	lea    -0x40(%ebp),%eax
40bbeb:	50                   	push   %eax
40bbec:	33 c0                	xor    %eax,%eax
40bbee:	50                   	push   %eax
40bbef:	53                   	push   %ebx
40bbf0:	6a 05                	push   $0x5
40bbf2:	ff 75 08             	push   0x8(%ebp)
40bbf5:	ff 15 14 20 41 00    	call   *0x412014
40bbfb:	85 c0                	test   %eax,%eax
40bbfd:	75 07                	jne    0x40bc06
40bbff:	68 cc 40 40 00       	push   $0x4040cc
40bc04:	eb 4c                	jmp    0x40bc52
40bc06:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
40bc0a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40bc0d:	85 c0                	test   %eax,%eax
40bc0f:	74 10                	je     0x40bc21
40bc11:	8b 08                	mov    (%eax),%ecx
40bc13:	50                   	push   %eax
40bc14:	8b 71 08             	mov    0x8(%ecx),%esi
40bc17:	8b ce                	mov    %esi,%ecx
40bc19:	ff 15 10 22 41 00    	call   *0x412210
40bc1f:	ff d6                	call   *%esi
40bc21:	33 c0                	xor    %eax,%eax
40bc23:	50                   	push   %eax
40bc24:	ff 15 0c 40 41 00    	call   *0x41400c
40bc2a:	ff 75 ec             	push   -0x14(%ebp)
40bc2d:	ff 15 0c 40 41 00    	call   *0x41400c
40bc33:	ff 75 e8             	push   -0x18(%ebp)
40bc36:	ff 15 0c 40 41 00    	call   *0x41400c
40bc3c:	ff 75 e0             	push   -0x20(%ebp)
40bc3f:	ff 15 0c 40 41 00    	call   *0x41400c
40bc45:	e8 d2 29 00 00       	call   0x40e61c
40bc4a:	c2 0c 00             	ret    $0xc
40bc4d:	68 50 2e 40 00       	push   $0x402e50
40bc52:	6a 0f                	push   $0xf
40bc54:	ff 15 70 20 41 00    	call   *0x412070
40bc5a:	50                   	push   %eax
40bc5b:	e8 b5 b9 ff ff       	call   0x407615
40bc60:	68 7c 42 40 00       	push   $0x40427c
40bc65:	ff 75 e8             	push   -0x18(%ebp)
40bc68:	6a 15                	push   $0x15
40bc6a:	6a 57                	push   $0x57
40bc6c:	e8 a4 b9 ff ff       	call   0x407615
40bc71:	cc                   	int3
40bc72:	6a 38                	push   $0x38
40bc74:	b8 81 f3 40 00       	mov    $0x40f381,%eax
40bc79:	e8 d0 29 00 00       	call   0x40e64e
40bc7e:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40bc81:	33 db                	xor    %ebx,%ebx
40bc83:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40bc86:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40bc89:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40bc8c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40bc8f:	8d 45 f0             	lea    -0x10(%ebp),%eax
40bc92:	50                   	push   %eax
40bc93:	ba 50 2e 40 00       	mov    $0x402e50,%edx
40bc98:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40bc9c:	e8 c2 be ff ff       	call   0x407b63
40bca1:	8b f8                	mov    %eax,%edi
40bca3:	85 ff                	test   %edi,%edi
40bca5:	74 13                	je     0x40bcba
40bca7:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40bcab:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40bcae:	85 c9                	test   %ecx,%ecx
40bcb0:	74 3e                	je     0x40bcf0
40bcb2:	8b 01                	mov    (%ecx),%eax
40bcb4:	51                   	push   %ecx
40bcb5:	8b 70 08             	mov    0x8(%eax),%esi
40bcb8:	eb 2c                	jmp    0x40bce6
40bcba:	8b 45 f0             	mov    -0x10(%ebp),%eax
40bcbd:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40bcc0:	51                   	push   %ecx
40bcc1:	68 1c 26 40 00       	push   $0x40261c
40bcc6:	50                   	push   %eax
40bcc7:	8b 30                	mov    (%eax),%esi
40bcc9:	8b 0e                	mov    (%esi),%ecx
40bccb:	ff 15 10 22 41 00    	call   *0x412210
40bcd1:	ff 16                	call   *(%esi)
40bcd3:	8b f8                	mov    %eax,%edi
40bcd5:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40bcd9:	8b 45 f0             	mov    -0x10(%ebp),%eax
40bcdc:	85 c0                	test   %eax,%eax
40bcde:	74 10                	je     0x40bcf0
40bce0:	8b 08                	mov    (%eax),%ecx
40bce2:	50                   	push   %eax
40bce3:	8b 71 08             	mov    0x8(%ecx),%esi
40bce6:	8b ce                	mov    %esi,%ecx
40bce8:	ff 15 10 22 41 00    	call   *0x412210
40bcee:	ff d6                	call   *%esi
40bcf0:	88 5d fc             	mov    %bl,-0x4(%ebp)
40bcf3:	83 ff 01             	cmp    $0x1,%edi
40bcf6:	75 26                	jne    0x40bd1e
40bcf8:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
40bcff:	8b 45 e8             	mov    -0x18(%ebp),%eax
40bd02:	85 c0                	test   %eax,%eax
40bd04:	74 10                	je     0x40bd16
40bd06:	8b 08                	mov    (%eax),%ecx
40bd08:	50                   	push   %eax
40bd09:	8b 71 08             	mov    0x8(%ecx),%esi
40bd0c:	8b ce                	mov    %esi,%ecx
40bd0e:	ff 15 10 22 41 00    	call   *0x412210
40bd14:	ff d6                	call   *%esi
40bd16:	e8 01 29 00 00       	call   0x40e61c
40bd1b:	c2 08 00             	ret    $0x8
40bd1e:	85 ff                	test   %edi,%edi
40bd20:	0f 88 95 01 00 00    	js     0x40bebb
40bd26:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40bd29:	89 5d bc             	mov    %ebx,-0x44(%ebp)
40bd2c:	89 5d c0             	mov    %ebx,-0x40(%ebp)
40bd2f:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
40bd32:	8d 45 f0             	lea    -0x10(%ebp),%eax
40bd35:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
40bd39:	50                   	push   %eax
40bd3a:	8d 45 bc             	lea    -0x44(%ebp),%eax
40bd3d:	33 d2                	xor    %edx,%edx
40bd3f:	50                   	push   %eax
40bd40:	51                   	push   %ecx
40bd41:	8b 4d 08             	mov    0x8(%ebp),%ecx
40bd44:	42                   	inc    %edx
40bd45:	e8 1b c3 ff ff       	call   0x408065
40bd4a:	85 c0                	test   %eax,%eax
40bd4c:	0f 85 71 01 00 00    	jne    0x40bec3
40bd52:	8b 45 f0             	mov    -0x10(%ebp),%eax
40bd55:	39 58 0c             	cmp    %ebx,0xc(%eax)
40bd58:	0f 84 52 01 00 00    	je     0x40beb0
40bd5e:	8b 18                	mov    (%eax),%ebx
40bd60:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40bd63:	50                   	push   %eax
40bd64:	53                   	push   %ebx
40bd65:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40bd68:	ff 15 24 20 41 00    	call   *0x412024
40bd6e:	85 c0                	test   %eax,%eax
40bd70:	75 10                	jne    0x40bd82
40bd72:	ff 15 70 20 41 00    	call   *0x412070
40bd78:	68 6c 2e 40 00       	push   $0x402e6c
40bd7d:	e9 46 01 00 00       	jmp    0x40bec8
40bd82:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40bd85:	33 f6                	xor    %esi,%esi
40bd87:	85 c0                	test   %eax,%eax
40bd89:	74 17                	je     0x40bda2
40bd8b:	2b c6                	sub    %esi,%eax
40bd8d:	48                   	dec    %eax
40bd8e:	50                   	push   %eax
40bd8f:	53                   	push   %ebx
40bd90:	ff 15 0c 20 41 00    	call   *0x41200c
40bd96:	85 c0                	test   %eax,%eax
40bd98:	74 59                	je     0x40bdf3
40bd9a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40bd9d:	46                   	inc    %esi
40bd9e:	3b f0                	cmp    %eax,%esi
40bda0:	72 e9                	jb     0x40bd8b
40bda2:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40bda6:	8b 5d e8             	mov    -0x18(%ebp),%ebx
40bda9:	68 a8 42 40 00       	push   $0x4042a8
40bdae:	ff 15 08 40 41 00    	call   *0x414008
40bdb4:	8b f0                	mov    %eax,%esi
40bdb6:	89 75 d8             	mov    %esi,-0x28(%ebp)
40bdb9:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
40bdbd:	8d 45 ec             	lea    -0x14(%ebp),%eax
40bdc0:	8b 3b                	mov    (%ebx),%edi
40bdc2:	50                   	push   %eax
40bdc3:	56                   	push   %esi
40bdc4:	53                   	push   %ebx
40bdc5:	8b bf 90 00 00 00    	mov    0x90(%edi),%edi
40bdcb:	8b cf                	mov    %edi,%ecx
40bdcd:	ff 15 10 22 41 00    	call   *0x412210
40bdd3:	ff d7                	call   *%edi
40bdd5:	56                   	push   %esi
40bdd6:	8b f8                	mov    %eax,%edi
40bdd8:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
40bddc:	ff 15 0c 40 41 00    	call   *0x41400c
40bde2:	85 ff                	test   %edi,%edi
40bde4:	79 1f                	jns    0x40be05
40bde6:	68 50 2e 40 00       	push   $0x402e50
40bdeb:	6a 0f                	push   $0xf
40bded:	57                   	push   %edi
40bdee:	e9 d8 00 00 00       	jmp    0x40becb
40bdf3:	68 50 2e 40 00       	push   $0x402e50
40bdf8:	6a 0f                	push   $0xf
40bdfa:	ff 15 70 20 41 00    	call   *0x412070
40be00:	e9 c5 00 00 00       	jmp    0x40beca
40be05:	33 db                	xor    %ebx,%ebx
40be07:	89 5d d8             	mov    %ebx,-0x28(%ebp)
40be0a:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40be0d:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40be10:	89 5d cc             	mov    %ebx,-0x34(%ebp)
40be13:	89 5d c8             	mov    %ebx,-0x38(%ebp)
40be16:	c6 45 fc 0c          	movb   $0xc,-0x4(%ebp)
40be1a:	8d 55 e0             	lea    -0x20(%ebp),%edx
40be1d:	8b 45 ec             	mov    -0x14(%ebp),%eax
40be20:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40be23:	52                   	push   %edx
40be24:	50                   	push   %eax
40be25:	8b 08                	mov    (%eax),%ecx
40be27:	8b 71 20             	mov    0x20(%ecx),%esi
40be2a:	8b ce                	mov    %esi,%ecx
40be2c:	ff 15 10 22 41 00    	call   *0x412210
40be32:	ff d6                	call   *%esi
40be34:	85 c0                	test   %eax,%eax
40be36:	79 0c                	jns    0x40be44
40be38:	68 50 2e 40 00       	push   $0x402e50
40be3d:	6a 0f                	push   $0xf
40be3f:	e9 86 00 00 00       	jmp    0x40beca
40be44:	8b f3                	mov    %ebx,%esi
40be46:	39 75 e0             	cmp    %esi,-0x20(%ebp)
40be49:	7e 1a                	jle    0x40be65
40be4b:	8b 7d f0             	mov    -0x10(%ebp),%edi
40be4e:	8b 5d dc             	mov    -0x24(%ebp),%ebx
40be51:	ff 75 ec             	push   -0x14(%ebp)
40be54:	8b cb                	mov    %ebx,%ecx
40be56:	56                   	push   %esi
40be57:	57                   	push   %edi
40be58:	e8 78 fa ff ff       	call   0x40b8d5
40be5d:	46                   	inc    %esi
40be5e:	3b 75 e0             	cmp    -0x20(%ebp),%esi
40be61:	7c ee                	jl     0x40be51
40be63:	33 db                	xor    %ebx,%ebx
40be65:	53                   	push   %ebx
40be66:	ff 15 0c 40 41 00    	call   *0x41400c
40be6c:	53                   	push   %ebx
40be6d:	ff 15 0c 40 41 00    	call   *0x41400c
40be73:	53                   	push   %ebx
40be74:	ff 15 0c 40 41 00    	call   *0x41400c
40be7a:	53                   	push   %ebx
40be7b:	ff 15 0c 40 41 00    	call   *0x41400c
40be81:	c6 45 fc 0e          	movb   $0xe,-0x4(%ebp)
40be85:	8b 45 ec             	mov    -0x14(%ebp),%eax
40be88:	85 c0                	test   %eax,%eax
40be8a:	74 10                	je     0x40be9c
40be8c:	8b 08                	mov    (%eax),%ecx
40be8e:	50                   	push   %eax
40be8f:	8b 71 08             	mov    0x8(%ecx),%esi
40be92:	8b ce                	mov    %esi,%ecx
40be94:	ff 15 10 22 41 00    	call   *0x412210
40be9a:	ff d6                	call   *%esi
40be9c:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40be9f:	e8 73 a0 ff ff       	call   0x405f17
40bea4:	c7 45 fc 0f 00 00 00 	movl   $0xf,-0x4(%ebp)
40beab:	e9 4f fe ff ff       	jmp    0x40bcff
40beb0:	68 50 2e 40 00       	push   $0x402e50
40beb5:	6a 0e                	push   $0xe
40beb7:	6a 0d                	push   $0xd
40beb9:	eb 10                	jmp    0x40becb
40bebb:	6a 05                	push   $0x5
40bebd:	53                   	push   %ebx
40bebe:	e8 52 b7 ff ff       	call   0x407615
40bec3:	68 50 2e 40 00       	push   $0x402e50
40bec8:	6a 0e                	push   $0xe
40beca:	50                   	push   %eax
40becb:	e8 45 b7 ff ff       	call   0x407615
40bed0:	cc                   	int3
40bed1:	6a 6c                	push   $0x6c
40bed3:	b8 d4 f3 40 00       	mov    $0x40f3d4,%eax
40bed8:	e8 a4 27 00 00       	call   0x40e681
40bedd:	8b f9                	mov    %ecx,%edi
40bedf:	8b 75 0c             	mov    0xc(%ebp),%esi
40bee2:	33 c0                	xor    %eax,%eax
40bee4:	8b 5d 08             	mov    0x8(%ebp),%ebx
40bee7:	89 75 b0             	mov    %esi,-0x50(%ebp)
40beea:	89 45 9c             	mov    %eax,-0x64(%ebp)
40beed:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bef0:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
40bef7:	89 45 e8             	mov    %eax,-0x18(%ebp)
40befa:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
40befe:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40bf02:	c7 45 d0 01 00 00 00 	movl   $0x1,-0x30(%ebp)
40bf09:	85 f6                	test   %esi,%esi
40bf0b:	74 09                	je     0x40bf16
40bf0d:	56                   	push   %esi
40bf0e:	53                   	push   %ebx
40bf0f:	e8 5e fd ff ff       	call   0x40bc72
40bf14:	eb 06                	jmp    0x40bf1c
40bf16:	53                   	push   %ebx
40bf17:	e8 92 f7 ff ff       	call   0x40b6ae
40bf1c:	6a 00                	push   $0x0
40bf1e:	b8 88 27 40 00       	mov    $0x402788,%eax
40bf23:	8b cf                	mov    %edi,%ecx
40bf25:	50                   	push   %eax
40bf26:	56                   	push   %esi
40bf27:	68 c0 42 40 00       	push   $0x4042c0
40bf2c:	50                   	push   %eax
40bf2d:	53                   	push   %ebx
40bf2e:	e8 42 f1 ff ff       	call   0x40b075
40bf33:	85 c0                	test   %eax,%eax
40bf35:	0f 85 b4 08 00 00    	jne    0x40c7ef
40bf3b:	6a 06                	push   $0x6
40bf3d:	b8 4c 27 40 00       	mov    $0x40274c,%eax