40cfa9:	d1 e0                	shl    $1,%eax
40cfab:	40                   	inc    %eax
40cfac:	c3                   	ret
40cfad:	f7 c2 01 00 00 00    	test   $0x1,%edx
40cfb3:	74 14                	je     0x40cfc9
40cfb5:	8a 02                	mov    (%edx),%al
40cfb7:	42                   	inc    %edx
40cfb8:	3a 01                	cmp    (%ecx),%al
40cfba:	75 eb                	jne    0x40cfa7
40cfbc:	41                   	inc    %ecx
40cfbd:	0a c0                	or     %al,%al
40cfbf:	74 e3                	je     0x40cfa4
40cfc1:	f7 c2 02 00 00 00    	test   $0x2,%edx
40cfc7:	74 ad                	je     0x40cf76
40cfc9:	66 8b 02             	mov    (%edx),%ax
40cfcc:	83 c2 02             	add    $0x2,%edx
40cfcf:	3a 01                	cmp    (%ecx),%al
40cfd1:	75 d4                	jne    0x40cfa7
40cfd3:	0a c0                	or     %al,%al
40cfd5:	74 cd                	je     0x40cfa4
40cfd7:	3a 61 01             	cmp    0x1(%ecx),%ah
40cfda:	75 cb                	jne    0x40cfa7
40cfdc:	0a e4                	or     %ah,%ah
40cfde:	74 c4                	je     0x40cfa4
40cfe0:	83 c1 02             	add    $0x2,%ecx
40cfe3:	eb 91                	jmp    0x40cf76
40cfe5:	55                   	push   %ebp
40cfe6:	8b ec                	mov    %esp,%ebp
40cfe8:	81 ec 5c 00 00 00    	sub    $0x5c,%esp
40cfee:	68 10 00 00 00       	push   $0x10
40cff3:	e8 a6 35 09 00       	call   0x4a059e
40cff8:	83 c4 04             	add    $0x4,%esp
40cffb:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cffe:	8b d8                	mov    %eax,%ebx
40d000:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
40d006:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
40d00d:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)
40d014:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)
40d01b:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
40d022:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
40d029:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
40d030:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d033:	50                   	push   %eax
40d034:	e8 4f 06 00 00       	call   0x40d688
40d039:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
40d03d:	b8 00 00 00 00       	mov    $0x0,%eax
40d042:	0f 94 c0             	sete   %al
40d045:	85 c0                	test   %eax,%eax
40d047:	0f 84 0a 00 00 00    	je     0x40d057
40d04d:	b8 7c 01 00 00       	mov    $0x17c,%eax
40d052:	e9 03 00 00 00       	jmp    0x40d05a
40d057:	8b 45 28             	mov    0x28(%ebp),%eax
40d05a:	89 45 28             	mov    %eax,0x28(%ebp)
40d05d:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
40d061:	b8 00 00 00 00       	mov    $0x0,%eax
40d066:	0f 94 c0             	sete   %al
40d069:	85 c0                	test   %eax,%eax
40d06b:	0f 84 0a 00 00 00    	je     0x40d07b
40d071:	b8 fa 00 00 00       	mov    $0xfa,%eax
40d076:	e9 03 00 00 00       	jmp    0x40d07e
40d07b:	8b 45 30             	mov    0x30(%ebp),%eax
40d07e:	89 45 30             	mov    %eax,0x30(%ebp)
40d081:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
40d085:	b8 00 00 00 00       	mov    $0x0,%eax
40d08a:	0f 94 c0             	sete   %al
40d08d:	89 45 ec             	mov    %eax,-0x14(%ebp)
40d090:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40d093:	83 c3 08             	add    $0x8,%ebx
40d096:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40d099:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40d09c:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40d09f:	8b 5d e8             	mov    -0x18(%ebp),%ebx
40d0a2:	db 03                	fildl  (%ebx)
40d0a4:	dd 5d dc             	fstpl  -0x24(%ebp)
40d0a7:	dd 45 dc             	fldl   -0x24(%ebp)
40d0aa:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40d0ad:	db 03                	fildl  (%ebx)
40d0af:	dd 5d d4             	fstpl  -0x2c(%ebp)
40d0b2:	dc 65 d4             	fsubl  -0x2c(%ebp)
40d0b5:	db 45 28             	fildl  0x28(%ebp)
40d0b8:	dd 5d cc             	fstpl  -0x34(%ebp)
40d0bb:	dc 65 cc             	fsubl  -0x34(%ebp)
40d0be:	dd 5d c4             	fstpl  -0x3c(%ebp)
40d0c1:	dd 45 c4             	fldl   -0x3c(%ebp)
40d0c4:	dc 35 fa bb 4c 00    	fdivl  0x4cbbfa
40d0ca:	dd 5d bc             	fstpl  -0x44(%ebp)
40d0cd:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40d0d1:	0f 84 0b 00 00 00    	je     0x40d0e2
40d0d7:	8b 55 c0             	mov    -0x40(%ebp),%edx
40d0da:	8b 45 bc             	mov    -0x44(%ebp),%eax
40d0dd:	e9 0c 00 00 00       	jmp    0x40d0ee
40d0e2:	db 45 18             	fildl  0x18(%ebp)
40d0e5:	dd 5d b4             	fstpl  -0x4c(%ebp)
40d0e8:	8b 55 b8             	mov    -0x48(%ebp),%edx
40d0eb:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40d0ee:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40d0f1:	89 55 a8             	mov    %edx,-0x58(%ebp)
40d0f4:	dd 45 a4             	fldl   -0x5c(%ebp)
40d0f7:	e8 f3 40 ff ff       	call   0x4011ef
40d0fc:	89 45 18             	mov    %eax,0x18(%ebp)
40d0ff:	83 7d 24 00          	cmpl   $0x0,0x24(%ebp)
40d103:	b8 00 00 00 00       	mov    $0x0,%eax
40d108:	0f 94 c0             	sete   %al
40d10b:	89 45 ec             	mov    %eax,-0x14(%ebp)
40d10e:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40d111:	83 c3 0c             	add    $0xc,%ebx
40d114:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40d117:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40d11a:	83 c3 04             	add    $0x4,%ebx
40d11d:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40d120:	8b 5d e8             	mov    -0x18(%ebp),%ebx
40d123:	db 03                	fildl  (%ebx)
40d125:	dd 5d dc             	fstpl  -0x24(%ebp)
40d128:	dd 45 dc             	fldl   -0x24(%ebp)
40d12b:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40d12e:	db 03                	fildl  (%ebx)
40d130:	dd 5d d4             	fstpl  -0x2c(%ebp)
40d133:	dc 65 d4             	fsubl  -0x2c(%ebp)
40d136:	db 45 30             	fildl  0x30(%ebp)
40d139:	dd 5d cc             	fstpl  -0x34(%ebp)
40d13c:	dc 65 cc             	fsubl  -0x34(%ebp)
40d13f:	dd 5d c4             	fstpl  -0x3c(%ebp)
40d142:	dd 45 c4             	fldl   -0x3c(%ebp)
40d145:	dc 35 fa bb 4c 00    	fdivl  0x4cbbfa
40d14b:	dd 5d bc             	fstpl  -0x44(%ebp)
40d14e:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40d152:	0f 84 0b 00 00 00    	je     0x40d163
40d158:	8b 55 c0             	mov    -0x40(%ebp),%edx
40d15b:	8b 45 bc             	mov    -0x44(%ebp),%eax
40d15e:	e9 0c 00 00 00       	jmp    0x40d16f
40d163:	db 45 20             	fildl  0x20(%ebp)
40d166:	dd 5d b4             	fstpl  -0x4c(%ebp)
40d169:	8b 55 b8             	mov    -0x48(%ebp),%edx
40d16c:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40d16f:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40d172:	89 55 a8             	mov    %edx,-0x58(%ebp)
40d175:	dd 45 a4             	fldl   -0x5c(%ebp)
40d178:	e8 72 40 ff ff       	call   0x4011ef
40d17d:	89 45 20             	mov    %eax,0x20(%ebp)
40d180:	83 7d 4c 00          	cmpl   $0x0,0x4c(%ebp)
40d184:	0f 85 5d 00 00 00    	jne    0x40d1e7
40d18a:	68 01 03 00 80       	push   $0x80000301
40d18f:	6a 00                	push   $0x0
40d191:	68 00 00 00 80       	push   $0x80000000
40d196:	68 01 03 00 80       	push   $0x80000301
40d19b:	6a 00                	push   $0x0
40d19d:	68 00 00 00 02       	push   $0x2000000
40d1a2:	68 01 03 00 80       	push   $0x80000301
40d1a7:	6a 00                	push   $0x0
40d1a9:	68 00 00 02 00       	push   $0x20000
40d1ae:	68 01 03 00 80       	push   $0x80000301
40d1b3:	6a 00                	push   $0x0
40d1b5:	68 00 00 01 00       	push   $0x10000
40d1ba:	68 01 03 00 80       	push   $0x80000301
40d1bf:	6a 00                	push   $0x0
40d1c1:	68 00 00 08 00       	push   $0x80000
40d1c6:	68 01 03 00 80       	push   $0x80000301
40d1cb:	6a 00                	push   $0x0
40d1cd:	68 00 00 00 00       	push   $0x0
40d1d2:	68 06 00 00 00       	push   $0x6
40d1d7:	bb c8 00 00 00       	mov    $0xc8,%ebx
40d1dc:	e8 ef 3d 09 00       	call   0x4a0fd0
40d1e1:	83 c4 4c             	add    $0x4c,%esp
40d1e4:	89 45 48             	mov    %eax,0x48(%ebp)
40d1e7:	83 7d 38 00          	cmpl   $0x0,0x38(%ebp)
40d1eb:	0f 84 2b 00 00 00    	je     0x40d21c
40d1f1:	68 01 03 00 80       	push   $0x80000301
40d1f6:	6a 00                	push   $0x0
40d1f8:	68 00 00 04 00       	push   $0x40000
40d1fd:	68 01 03 00 80       	push   $0x80000301
40d202:	6a 00                	push   $0x0
40d204:	ff 75 48             	push   0x48(%ebp)
40d207:	68 02 00 00 00       	push   $0x2
40d20c:	bb c8 00 00 00       	mov    $0xc8,%ebx
40d211:	e8 ba 3d 09 00       	call   0x4a0fd0
40d216:	83 c4 1c             	add    $0x1c,%esp
40d219:	89 45 48             	mov    %eax,0x48(%ebp)
40d21c:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40d220:	0f 85 60 00 00 00    	jne    0x40d286
40d226:	83 7d 58 00          	cmpl   $0x0,0x58(%ebp)
40d22a:	0f 85 0e 00 00 00    	jne    0x40d23e
40d230:	83 7d 5c 00          	cmpl   $0x0,0x5c(%ebp)
40d234:	0f 84 04 00 00 00    	je     0x40d23e
40d23a:	33 c0                	xor    %eax,%eax
40d23c:	eb 05                	jmp    0x40d243
40d23e:	b8 01 00 00 00       	mov    $0x1,%eax
40d243:	85 c0                	test   %eax,%eax
40d245:	0f 84 0a 00 00 00    	je     0x40d255
40d24b:	b8 00 00 04 00       	mov    $0x40000,%eax
40d250:	e9 05 00 00 00       	jmp    0x40d25a
40d255:	b8 80 00 00 00       	mov    $0x80,%eax
40d25a:	68 01 03 00 80       	push   $0x80000301
40d25f:	6a 00                	push   $0x0
40d261:	50                   	push   %eax
40d262:	68 01 03 00 80       	push   $0x80000301
40d267:	6a 00                	push   $0x0
40d269:	ff 75 50             	push   0x50(%ebp)
40d26c:	68 02 00 00 00       	push   $0x2
40d271:	bb c8 00 00 00       	mov    $0xc8,%ebx
40d276:	e8 55 3d 09 00       	call   0x4a0fd0
40d27b:	83 c4 1c             	add    $0x1c,%esp
40d27e:	89 45 50             	mov    %eax,0x50(%ebp)
40d281:	e9 35 00 00 00       	jmp    0x40d2bb
40d286:	83 7d 58 00          	cmpl   $0x0,0x58(%ebp)
40d28a:	0f 84 2b 00 00 00    	je     0x40d2bb
40d290:	68 01 03 00 80       	push   $0x80000301
40d295:	6a 00                	push   $0x0
40d297:	68 00 00 04 00       	push   $0x40000
40d29c:	68 01 03 00 80       	push   $0x80000301
40d2a1:	6a 00                	push   $0x0
40d2a3:	ff 75 50             	push   0x50(%ebp)
40d2a6:	68 02 00 00 00       	push   $0x2
40d2ab:	bb c8 00 00 00       	mov    $0xc8,%ebx
40d2b0:	e8 1b 3d 09 00       	call   0x4a0fd0
40d2b5:	83 c4 1c             	add    $0x1c,%esp
40d2b8:	89 45 50             	mov    %eax,0x50(%ebp)
40d2bb:	83 3d 54 99 50 00 00 	cmpl   $0x0,0x509954
40d2c2:	0f 85 98 00 00 00    	jne    0x40d360
40d2c8:	68 01 01 00 80       	push   $0x80000101
40d2cd:	6a 00                	push   $0x0
40d2cf:	68 00 00 00 00       	push   $0x0
40d2d4:	68 01 00 00 00       	push   $0x1
40d2d9:	bb 40 01 00 00       	mov    $0x140,%ebx
40d2de:	e8 bd 43 09 00       	call   0x4a16a0
40d2e3:	83 c4 10             	add    $0x10,%esp
40d2e6:	89 45 ec             	mov    %eax,-0x14(%ebp)
40d2e9:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40d2f0:	6a 00                	push   $0x0
40d2f2:	ff 75 e8             	push   -0x18(%ebp)
40d2f5:	8d 45 ec             	lea    -0x14(%ebp),%eax
40d2f8:	50                   	push   %eax
40d2f9:	e8 c7 8a ff ff       	call   0x405dc5
40d2fe:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40d301:	8b 5d ec             	mov    -0x14(%ebp),%ebx
40d304:	85 db                	test   %ebx,%ebx
40d306:	74 09                	je     0x40d311
40d308:	53                   	push   %ebx
40d309:	e8 96 32 09 00       	call   0x4a05a4
40d30e:	83 c4 04             	add    $0x4,%esp
40d311:	89 65 e0             	mov    %esp,-0x20(%ebp)
40d314:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40d317:	85 c0                	test   %eax,%eax
40d319:	74 03                	je     0x40d31e
40d31b:	83 c0 08             	add    $0x8,%eax
40d31e:	50                   	push   %eax
40d31f:	33 c0                	xor    %eax,%eax
40d321:	ff 15 84 31 4b 00    	call   *0x4b3184
40d327:	90                   	nop
40d328:	90                   	nop
40d329:	39 65 e0             	cmp    %esp,-0x20(%ebp)
40d32c:	74 17                	je     0x40d345
40d32e:	68 b5 04 00 00       	push   $0x4b5
40d333:	68 33 ce 03 04       	push   $0x403ce33
40d338:	68 06 00 00 00       	push   $0x6
40d33d:	e8 68 32 09 00       	call   0x4a05aa
40d342:	83 c4 0c             	add    $0xc,%esp
40d345:	89 45 dc             	mov    %eax,-0x24(%ebp)
40d348:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40d34b:	85 db                	test   %ebx,%ebx
40d34d:	74 09                	je     0x40d358
40d34f:	53                   	push   %ebx
40d350:	e8 4f 32 09 00       	call   0x4a05a4
40d355:	83 c4 04             	add    $0x4,%esp
40d358:	8b 45 dc             	mov    -0x24(%ebp),%eax
40d35b:	a3 54 99 50 00       	mov    %eax,0x509954
40d360:	68 34 ea 4d 00       	push   $0x4dea34
40d365:	8b 5d 40             	mov    0x40(%ebp),%ebx
40d368:	ff 33                	push   (%ebx)
40d36a:	e8 d9 fb ff ff       	call   0x40cf48
40d36f:	83 c4 08             	add    $0x8,%esp
40d372:	83 f8 00             	cmp    $0x0,%eax
40d375:	b8 00 00 00 00       	mov    $0x0,%eax
40d37a:	0f 94 c0             	sete   %al
40d37d:	89 45 ec             	mov    %eax,-0x14(%ebp)
40d380:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40d384:	b8 00 00 00 00       	mov    $0x0,%eax
40d389:	0f 94 c0             	sete   %al
40d38c:	89 45 e8             	mov    %eax,-0x18(%ebp)
40d38f:	ff 75 08             	push   0x8(%ebp)
40d392:	e8 f9 04 00 00       	call   0x40d890
40d397:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40d39a:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
40d39e:	0f 84 0a 00 00 00    	je     0x40d3ae
40d3a4:	b8 69 3f 4e 00       	mov    $0x4e3f69,%eax
40d3a9:	e9 1c 00 00 00       	jmp    0x40d3ca
40d3ae:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40d3b1:	85 c0                	test   %eax,%eax
40d3b3:	74 15                	je     0x40d3ca
40d3b5:	50                   	push   %eax
40d3b6:	8b d8                	mov    %eax,%ebx
40d3b8:	e8 67 86 ff ff       	call   0x405a24
40d3bd:	40                   	inc    %eax
40d3be:	50                   	push   %eax
40d3bf:	e8 da 31 09 00       	call   0x4a059e
40d3c4:	59                   	pop    %ecx
40d3c5:	5e                   	pop    %esi
40d3c6:	8b f8                	mov    %eax,%edi
40d3c8:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40d3ca:	89 45 e0             	mov    %eax,-0x20(%ebp)
40d3cd:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40d3d0:	85 db                	test   %ebx,%ebx
40d3d2:	74 09                	je     0x40d3dd
40d3d4:	53                   	push   %ebx
40d3d5:	e8 ca 31 09 00       	call   0x4a05a4
40d3da:	83 c4 04             	add    $0x4,%esp
40d3dd:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40d3e1:	0f 84 21 00 00 00    	je     0x40d408
40d3e7:	8b 45 e0             	mov    -0x20(%ebp),%eax
40d3ea:	85 c0                	test   %eax,%eax
40d3ec:	74 15                	je     0x40d403
40d3ee:	50                   	push   %eax
40d3ef:	8b d8                	mov    %eax,%ebx
40d3f1:	e8 2e 86 ff ff       	call   0x405a24
40d3f6:	40                   	inc    %eax
40d3f7:	50                   	push   %eax
40d3f8:	e8 a1 31 09 00       	call   0x4a059e
40d3fd:	59                   	pop    %ecx
40d3fe:	5e                   	pop    %esi
40d3ff:	8b f8                	mov    %eax,%edi
40d401:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40d403:	e9 1e 00 00 00       	jmp    0x40d426
40d408:	8b 5d 40             	mov    0x40(%ebp),%ebx
40d40b:	8b 03                	mov    (%ebx),%eax
40d40d:	85 c0                	test   %eax,%eax
40d40f:	74 15                	je     0x40d426
40d411:	50                   	push   %eax
40d412:	8b d8                	mov    %eax,%ebx
40d414:	e8 0b 86 ff ff       	call   0x405a24
40d419:	40                   	inc    %eax
40d41a:	50                   	push   %eax
40d41b:	e8 7e 31 09 00       	call   0x4a059e
40d420:	59                   	pop    %ecx
40d421:	5e                   	pop    %esi
40d422:	8b f8                	mov    %eax,%edi
40d424:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40d426:	89 45 dc             	mov    %eax,-0x24(%ebp)
40d429:	8b 5d e0             	mov    -0x20(%ebp),%ebx
40d42c:	85 db                	test   %ebx,%ebx
40d42e:	74 09                	je     0x40d439
40d430:	53                   	push   %ebx
40d431:	e8 6e 31 09 00       	call   0x4a05a4
40d436:	83 c4 04             	add    $0x4,%esp
40d439:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
40d440:	6a 00                	push   $0x0
40d442:	ff 75 d8             	push   -0x28(%ebp)
40d445:	8d 45 dc             	lea    -0x24(%ebp),%eax
40d448:	50                   	push   %eax
40d449:	e8 77 89 ff ff       	call   0x405dc5
40d44e:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40d451:	8b 5d dc             	mov    -0x24(%ebp),%ebx