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
40bf42:	8b cf                	mov    %edi,%ecx
40bf44:	50                   	push   %eax
40bf45:	56                   	push   %esi
40bf46:	68 44 40 40 00       	push   $0x404044
40bf4b:	50                   	push   %eax
40bf4c:	53                   	push   %ebx
40bf4d:	e8 62 f3 ff ff       	call   0x40b2b4
40bf52:	85 c0                	test   %eax,%eax
40bf54:	74 0a                	je     0x40bf60
40bf56:	68 4c 27 40 00       	push   $0x40274c
40bf5b:	e9 94 08 00 00       	jmp    0x40c7f4
40bf60:	6a 07                	push   $0x7
40bf62:	b8 b4 27 40 00       	mov    $0x4027b4,%eax
40bf67:	8b cf                	mov    %edi,%ecx
40bf69:	50                   	push   %eax
40bf6a:	56                   	push   %esi
40bf6b:	6a 00                	push   $0x0
40bf6d:	50                   	push   %eax
40bf6e:	53                   	push   %ebx
40bf6f:	e8 40 f3 ff ff       	call   0x40b2b4
40bf74:	85 c0                	test   %eax,%eax
40bf76:	74 0a                	je     0x40bf82
40bf78:	68 b4 27 40 00       	push   $0x4027b4
40bf7d:	e9 72 08 00 00       	jmp    0x40c7f4
40bf82:	8d 45 d8             	lea    -0x28(%ebp),%eax
40bf85:	8b cf                	mov    %edi,%ecx
40bf87:	50                   	push   %eax
40bf88:	b8 d0 27 40 00       	mov    $0x4027d0,%eax
40bf8d:	50                   	push   %eax
40bf8e:	56                   	push   %esi
40bf8f:	68 48 40 40 00       	push   $0x404048
40bf94:	50                   	push   %eax
40bf95:	e8 76 ef ff ff       	call   0x40af10
40bf9a:	84 c0                	test   %al,%al
40bf9c:	74 4e                	je     0x40bfec
40bf9e:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40bfa2:	8b 55 d8             	mov    -0x28(%ebp),%edx
40bfa5:	c7 45 c8 02 00 00 00 	movl   $0x2,-0x38(%ebp)
40bfac:	73 03                	jae    0x40bfb1
40bfae:	8d 55 d8             	lea    -0x28(%ebp),%edx
40bfb1:	b9 e0 11 41 00       	mov    $0x4111e0,%ecx
40bfb6:	e8 b9 1b 00 00       	call   0x40db74
40bfbb:	89 45 bc             	mov    %eax,-0x44(%ebp)
40bfbe:	83 f8 ff             	cmp    $0xffffffff,%eax
40bfc1:	0f 84 35 08 00 00    	je     0x40c7fc
40bfc7:	8d 45 bc             	lea    -0x44(%ebp),%eax
40bfca:	50                   	push   %eax
40bfcb:	6a 00                	push   $0x0
40bfcd:	6a 08                	push   $0x8
40bfcf:	53                   	push   %ebx
40bfd0:	ff 15 18 20 41 00    	call   *0x412018
40bfd6:	85 c0                	test   %eax,%eax
40bfd8:	75 12                	jne    0x40bfec
40bfda:	68 d0 27 40 00       	push   $0x4027d0
40bfdf:	6a 0f                	push   $0xf
40bfe1:	ff 15 70 20 41 00    	call   *0x412070
40bfe7:	e9 0a 08 00 00       	jmp    0x40c7f6
40bfec:	8d 4d a0             	lea    -0x60(%ebp),%ecx
40bfef:	33 c0                	xor    %eax,%eax
40bff1:	51                   	push   %ecx
40bff2:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40bff5:	89 45 a0             	mov    %eax,-0x60(%ebp)
40bff8:	51                   	push   %ecx
40bff9:	6a 10                	push   $0x10
40bffb:	50                   	push   %eax
40bffc:	6a 08                	push   $0x8
40bffe:	53                   	push   %ebx
40bfff:	ff 15 00 20 41 00    	call   *0x412000
40c005:	85 c0                	test   %eax,%eax
40c007:	75 09                	jne    0x40c012
40c009:	68 d0 27 40 00       	push   $0x4027d0
40c00e:	6a 0e                	push   $0xe
40c010:	eb cf                	jmp    0x40bfe1
40c012:	83 7d c8 02          	cmpl   $0x2,-0x38(%ebp)
40c016:	75 0d                	jne    0x40c025
40c018:	8b 45 bc             	mov    -0x44(%ebp),%eax
40c01b:	48                   	dec    %eax
40c01c:	f7 d8                	neg    %eax
40c01e:	1b c0                	sbb    %eax,%eax
40c020:	f7 d0                	not    %eax
40c022:	21 45 d0             	and    %eax,-0x30(%ebp)
40c025:	8d 45 d8             	lea    -0x28(%ebp),%eax
40c028:	8b cf                	mov    %edi,%ecx
40c02a:	50                   	push   %eax
40c02b:	b8 b0 29 40 00       	mov    $0x4029b0,%eax
40c030:	50                   	push   %eax
40c031:	56                   	push   %esi
40c032:	68 50 40 40 00       	push   $0x404050
40c037:	50                   	push   %eax
40c038:	e8 d3 ee ff ff       	call   0x40af10
40c03d:	84 c0                	test   %al,%al
40c03f:	74 65                	je     0x40c0a6
40c041:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40c045:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40c048:	c7 45 c8 03 00 00 00 	movl   $0x3,-0x38(%ebp)
40c04f:	73 03                	jae    0x40c054
40c051:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40c054:	8d 55 b4             	lea    -0x4c(%ebp),%edx
40c057:	e8 5a b6 ff ff       	call   0x4076b6
40c05c:	8b d0                	mov    %eax,%edx
40c05e:	85 d2                	test   %edx,%edx
40c060:	74 16                	je     0x40c078
40c062:	68 b0 29 40 00       	push   $0x4029b0
40c067:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40c06a:	e8 6c a4 ff ff       	call   0x4064db
40c06f:	50                   	push   %eax
40c070:	6a 15                	push   $0x15
40c072:	52                   	push   %edx
40c073:	e9 96 07 00 00       	jmp    0x40c80e
40c078:	8b 55 b8             	mov    -0x48(%ebp),%edx
40c07b:	33 c9                	xor    %ecx,%ecx
40c07d:	0b 4d b4             	or     -0x4c(%ebp),%ecx
40c080:	33 c0                	xor    %eax,%eax
40c082:	89 4d bc             	mov    %ecx,-0x44(%ebp)
40c085:	0b d0                	or     %eax,%edx
40c087:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40c08a:	89 55 c0             	mov    %edx,-0x40(%ebp)
40c08d:	51                   	push   %ecx
40c08e:	50                   	push   %eax
40c08f:	6a 09                	push   $0x9
40c091:	53                   	push   %ebx
40c092:	ff 15 18 20 41 00    	call   *0x412018
40c098:	85 c0                	test   %eax,%eax
40c09a:	75 0a                	jne    0x40c0a6
40c09c:	68 b0 29 40 00       	push   $0x4029b0
40c0a1:	e9 39 ff ff ff       	jmp    0x40bfdf
40c0a6:	6a 0a                	push   $0xa
40c0a8:	b8 dc 29 40 00       	mov    $0x4029dc,%eax
40c0ad:	8b cf                	mov    %edi,%ecx
40c0af:	50                   	push   %eax
40c0b0:	56                   	push   %esi
40c0b1:	68 58 40 40 00       	push   $0x404058
40c0b6:	50                   	push   %eax
40c0b7:	53                   	push   %ebx
40c0b8:	e8 f7 f1 ff ff       	call   0x40b2b4
40c0bd:	85 c0                	test   %eax,%eax
40c0bf:	74 0a                	je     0x40c0cb
40c0c1:	68 dc 29 40 00       	push   $0x4029dc
40c0c6:	e9 29 07 00 00       	jmp    0x40c7f4
40c0cb:	6a 1a                	push   $0x1a
40c0cd:	b8 00 2a 40 00       	mov    $0x402a00,%eax
40c0d2:	8b cf                	mov    %edi,%ecx
40c0d4:	50                   	push   %eax
40c0d5:	56                   	push   %esi
40c0d6:	68 c4 42 40 00       	push   $0x4042c4
40c0db:	50                   	push   %eax
40c0dc:	53                   	push   %ebx
40c0dd:	e8 d2 f1 ff ff       	call   0x40b2b4
40c0e2:	85 c0                	test   %eax,%eax
40c0e4:	74 0a                	je     0x40c0f0
40c0e6:	68 00 2a 40 00       	push   $0x402a00
40c0eb:	e9 04 07 00 00       	jmp    0x40c7f4
40c0f0:	6a 0b                	push   $0xb
40c0f2:	b8 88 2a 40 00       	mov    $0x402a88,%eax
40c0f7:	8b cf                	mov    %edi,%ecx
40c0f9:	50                   	push   %eax
40c0fa:	56                   	push   %esi
40c0fb:	68 64 40 40 00       	push   $0x404064
40c100:	50                   	push   %eax
40c101:	53                   	push   %ebx
40c102:	e8 ad f1 ff ff       	call   0x40b2b4
40c107:	85 c0                	test   %eax,%eax
40c109:	74 0a                	je     0x40c115
40c10b:	68 88 2a 40 00       	push   $0x402a88
40c110:	e9 df 06 00 00       	jmp    0x40c7f4
40c115:	6a 0c                	push   $0xc
40c117:	b8 cc 2a 40 00       	mov    $0x402acc,%eax
40c11c:	8b cf                	mov    %edi,%ecx
40c11e:	50                   	push   %eax
40c11f:	56                   	push   %esi
40c120:	68 6c 40 40 00       	push   $0x40406c
40c125:	50                   	push   %eax
40c126:	53                   	push   %ebx
40c127:	e8 5e f0 ff ff       	call   0x40b18a
40c12c:	85 c0                	test   %eax,%eax