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
40c12e:	74 0a                	je     0x40c13a
40c130:	68 cc 2a 40 00       	push   $0x402acc
40c135:	e9 ba 06 00 00       	jmp    0x40c7f4
40c13a:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
40c13e:	8b ce                	mov    %esi,%ecx
40c140:	89 4d b8             	mov    %ecx,-0x48(%ebp)
40c143:	0f 85 35 01 00 00    	jne    0x40c27e
40c149:	8b 4f 08             	mov    0x8(%edi),%ecx
40c14c:	8d 45 b8             	lea    -0x48(%ebp),%eax
40c14f:	68 74 40 40 00       	push   $0x404074
40c154:	68 24 28 40 00       	push   $0x402824
40c159:	50                   	push   %eax
40c15a:	8b 71 08             	mov    0x8(%ecx),%esi
40c15d:	e8 25 92 ff ff       	call   0x405387
40c162:	39 30                	cmp    %esi,(%eax)
40c164:	74 0e                	je     0x40c174
40c166:	68 24 28 40 00       	push   $0x402824
40c16b:	6a 35                	push   $0x35
40c16d:	6a 57                	push   $0x57
40c16f:	e9 83 06 00 00       	jmp    0x40c7f7
40c174:	8b 4f 08             	mov    0x8(%edi),%ecx
40c177:	8d 45 b8             	lea    -0x48(%ebp),%eax
40c17a:	68 7c 40 40 00       	push   $0x40407c
40c17f:	68 68 28 40 00       	push   $0x402868
40c184:	50                   	push   %eax
40c185:	8b 71 08             	mov    0x8(%ecx),%esi
40c188:	e8 fa 91 ff ff       	call   0x405387
40c18d:	39 30                	cmp    %esi,(%eax)
40c18f:	74 07                	je     0x40c198
40c191:	68 68 28 40 00       	push   $0x402868
40c196:	eb d3                	jmp    0x40c16b
40c198:	8b 4f 08             	mov    0x8(%edi),%ecx
40c19b:	8d 45 b8             	lea    -0x48(%ebp),%eax
40c19e:	68 84 40 40 00       	push   $0x404084
40c1a3:	68 bc 28 40 00       	push   $0x4028bc
40c1a8:	50                   	push   %eax
40c1a9:	8b 71 08             	mov    0x8(%ecx),%esi
40c1ac:	e8 d6 91 ff ff       	call   0x405387
40c1b1:	39 30                	cmp    %esi,(%eax)
40c1b3:	74 07                	je     0x40c1bc
40c1b5:	68 bc 28 40 00       	push   $0x4028bc
40c1ba:	eb af                	jmp    0x40c16b
40c1bc:	8b 4f 08             	mov    0x8(%edi),%ecx
40c1bf:	8d 45 b8             	lea    -0x48(%ebp),%eax
40c1c2:	68 90 40 40 00       	push   $0x404090
40c1c7:	68 5c 29 40 00       	push   $0x40295c
40c1cc:	50                   	push   %eax
40c1cd:	8b 71 08             	mov    0x8(%ecx),%esi
40c1d0:	e8 b2 91 ff ff       	call   0x405387
40c1d5:	39 30                	cmp    %esi,(%eax)
40c1d7:	74 07                	je     0x40c1e0
40c1d9:	68 5c 29 40 00       	push   $0x40295c
40c1de:	eb 8b                	jmp    0x40c16b
40c1e0:	33 c0                	xor    %eax,%eax
40c1e2:	89 45 d0             	mov    %eax,-0x30(%ebp)
40c1e5:	8b 75 b0             	mov    -0x50(%ebp),%esi
40c1e8:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40c1ec:	85 f6                	test   %esi,%esi
40c1ee:	74 67                	je     0x40c257
40c1f0:	8d 45 d0             	lea    -0x30(%ebp),%eax
40c1f3:	ba cc 42 40 00       	mov    $0x4042cc,%edx
40c1f8:	50                   	push   %eax
40c1f9:	8b ce                	mov    %esi,%ecx
40c1fb:	e8 63 b9 ff ff       	call   0x407b63
40c200:	8b 45 d0             	mov    -0x30(%ebp),%eax
40c203:	85 c0                	test   %eax,%eax
40c205:	74 50                	je     0x40c257
40c207:	33 c0                	xor    %eax,%eax
40c209:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40c20c:	89 45 a8             	mov    %eax,-0x58(%ebp)
40c20f:	89 45 ac             	mov    %eax,-0x54(%ebp)
40c212:	50                   	push   %eax
40c213:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40c217:	ff 15 b0 20 41 00    	call   *0x4120b0
40c21d:	6a 00                	push   $0x0
40c21f:	6a 34                	push   $0x34
40c221:	8d 55 a4             	lea    -0x5c(%ebp),%edx
40c224:	8b c8                	mov    %eax,%ecx
40c226:	e8 7e 16 00 00       	call   0x40d8a9
40c22b:	ff 75 a4             	push   -0x5c(%ebp)
40c22e:	68 bc 21 40 00       	push   $0x4021bc
40c233:	6a f4                	push   $0xfffffff4
40c235:	ff 15 cc 20 41 00    	call   *0x4120cc
40c23b:	50                   	push   %eax
40c23c:	e8 f0 b1 ff ff       	call   0x407431
40c241:	83 c4 0c             	add    $0xc,%esp
40c244:	83 7d a4 00          	cmpl   $0x0,-0x5c(%ebp)
40c248:	74 0a                	je     0x40c254
40c24a:	ff 75 a4             	push   -0x5c(%ebp)
40c24d:	ff 15 e4 21 41 00    	call   *0x4121e4
40c253:	59                   	pop    %ecx
40c254:	8b 45 d0             	mov    -0x30(%ebp),%eax
40c257:	33 c9                	xor    %ecx,%ecx
40c259:	89 4d b8             	mov    %ecx,-0x48(%ebp)
40c25c:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40c260:	85 c0                	test   %eax,%eax
40c262:	74 16                	je     0x40c27a
40c264:	8b 08                	mov    (%eax),%ecx
40c266:	50                   	push   %eax
40c267:	8b 71 08             	mov    0x8(%ecx),%esi
40c26a:	8b ce                	mov    %esi,%ecx
40c26c:	ff 15 10 22 41 00    	call   *0x412210
40c272:	ff d6                	call   *%esi
40c274:	8b 75 b0             	mov    -0x50(%ebp),%esi
40c277:	8b 4d b8             	mov    -0x48(%ebp),%ecx
40c27a:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40c27e:	8d 45 d8             	lea    -0x28(%ebp),%eax
40c281:	50                   	push   %eax
40c282:	68 e0 42 40 00       	push   $0x4042e0
40c287:	51                   	push   %ecx
40c288:	68 74 40 40 00       	push   $0x404074
40c28d:	68 24 28 40 00       	push   $0x402824
40c292:	8b cf                	mov    %edi,%ecx
40c294:	e8 77 ec ff ff       	call   0x40af10
40c299:	84 c0                	test   %al,%al
40c29b:	74 4c                	je     0x40c2e9
40c29d:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40c2a1:	8b 55 d8             	mov    -0x28(%ebp),%edx
40c2a4:	c7 45 c8 02 00 00 00 	movl   $0x2,-0x38(%ebp)
40c2ab:	73 03                	jae    0x40c2b0
40c2ad:	8d 55 d8             	lea    -0x28(%ebp),%edx
40c2b0:	b9 c0 11 41 00       	mov    $0x4111c0,%ecx
40c2b5:	e8 ba 18 00 00       	call   0x40db74
40c2ba:	89 45 bc             	mov    %eax,-0x44(%ebp)
40c2bd:	83 f8 ff             	cmp    $0xffffffff,%eax
40c2c0:	75 0a                	jne    0x40c2cc
40c2c2:	68 24 28 40 00       	push   $0x402824
40c2c7:	e9 35 05 00 00       	jmp    0x40c801
40c2cc:	8d 45 bc             	lea    -0x44(%ebp),%eax
40c2cf:	50                   	push   %eax
40c2d0:	6a 00                	push   $0x0
40c2d2:	6a 0d                	push   $0xd
40c2d4:	53                   	push   %ebx
40c2d5:	ff 15 18 20 41 00    	call   *0x412018
40c2db:	85 c0                	test   %eax,%eax
40c2dd:	75 0a                	jne    0x40c2e9
40c2df:	68 24 28 40 00       	push   $0x402824
40c2e4:	e9 f6 fc ff ff       	jmp    0x40bfdf
40c2e9:	6a 0e                	push   $0xe
40c2eb:	68 00 43 40 00       	push   $0x404300
40c2f0:	ff 75 b8             	push   -0x48(%ebp)
40c2f3:	8b cf                	mov    %edi,%ecx
40c2f5:	68 7c 40 40 00       	push   $0x40407c
40c2fa:	68 68 28 40 00       	push   $0x402868
40c2ff:	53                   	push   %ebx
40c300:	e8 85 ee ff ff       	call   0x40b18a
40c305:	85 c0                	test   %eax,%eax
40c307:	74 0a                	je     0x40c313
40c309:	68 68 28 40 00       	push   $0x402868
40c30e:	e9 e1 04 00 00       	jmp    0x40c7f4
40c313:	6a 0f                	push   $0xf
40c315:	68 38 43 40 00       	push   $0x404338
40c31a:	ff 75 b8             	push   -0x48(%ebp)
40c31d:	8b cf                	mov    %edi,%ecx
40c31f:	68 84 40 40 00       	push   $0x404084
40c324:	68 bc 28 40 00       	push   $0x4028bc
40c329:	53                   	push   %ebx
40c32a:	e8 5b ee ff ff       	call   0x40b18a
40c32f:	85 c0                	test   %eax,%eax
40c331:	74 0a                	je     0x40c33d
40c333:	68 bc 28 40 00       	push   $0x4028bc
40c338:	e9 b7 04 00 00       	jmp    0x40c7f4
40c33d:	6a 10                	push   $0x10
40c33f:	68 80 43 40 00       	push   $0x404380
40c344:	ff 75 b8             	push   -0x48(%ebp)
40c347:	8b cf                	mov    %edi,%ecx
40c349:	68 90 40 40 00       	push   $0x404090
40c34e:	68 5c 29 40 00       	push   $0x40295c
40c353:	53                   	push   %ebx
40c354:	e8 31 ee ff ff       	call   0x40b18a
40c359:	85 c0                	test   %eax,%eax
40c35b:	74 0a                	je     0x40c367
40c35d:	68 5c 29 40 00       	push   $0x40295c
40c362:	e9 8d 04 00 00       	jmp    0x40c7f4
40c367:	6a 11                	push   $0x11