40b020:	8b eb                	mov    %ebx,%ebp
40b022:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
40b028:	75 05                	jne    0x40b02f
40b02a:	b9 02 00 00 00       	mov    $0x2,%ecx
40b02f:	51                   	push   %ecx
40b030:	e8 7b 04 00 00       	call   0x40b4b0
40b035:	5d                   	pop    %ebp
40b036:	59                   	pop    %ecx
40b037:	5b                   	pop    %ebx
40b038:	c9                   	leave
40b039:	c2 0c 00             	ret    $0xc
40b03c:	55                   	push   %ebp
40b03d:	8b ec                	mov    %esp,%ebp
40b03f:	a1 54 41 42 00       	mov    0x424154,%eax
40b044:	3d da 5d 40 00       	cmp    $0x405dda,%eax
40b049:	74 1f                	je     0x40b06a
40b04b:	64 8b 0d 18 00 00 00 	mov    %fs:0x18,%ecx
40b052:	8b 45 08             	mov    0x8(%ebp),%eax
40b055:	8b 80 c4 00 00 00    	mov    0xc4(%eax),%eax
40b05b:	3b 41 08             	cmp    0x8(%ecx),%eax
40b05e:	72 05                	jb     0x40b065
40b060:	3b 41 04             	cmp    0x4(%ecx),%eax
40b063:	76 05                	jbe    0x40b06a
40b065:	6a 0d                	push   $0xd
40b067:	59                   	pop    %ecx
40b068:	cd 29                	int    $0x29
40b06a:	5d                   	pop    %ebp
40b06b:	c3                   	ret
40b06c:	cc                   	int3
40b06d:	cc                   	int3
40b06e:	cc                   	int3
40b06f:	cc                   	int3
40b070:	53                   	push   %ebx
40b071:	56                   	push   %esi
40b072:	57                   	push   %edi
40b073:	8b 54 24 10          	mov    0x10(%esp),%edx
40b077:	8b 44 24 14          	mov    0x14(%esp),%eax
40b07b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40b07f:	55                   	push   %ebp
40b080:	52                   	push   %edx
40b081:	50                   	push   %eax
40b082:	51                   	push   %ecx
40b083:	51                   	push   %ecx
40b084:	68 10 b1 40 00       	push   $0x40b110
40b089:	64 ff 35 00 00 00 00 	push   %fs:0x0
40b090:	a1 14 30 43 00       	mov    0x433014,%eax
40b095:	33 c4                	xor    %esp,%eax
40b097:	89 44 24 08          	mov    %eax,0x8(%esp)
40b09b:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40b0a2:	8b 44 24 30          	mov    0x30(%esp),%eax
40b0a6:	8b 58 08             	mov    0x8(%eax),%ebx
40b0a9:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40b0ad:	33 19                	xor    (%ecx),%ebx
40b0af:	8b 70 0c             	mov    0xc(%eax),%esi
40b0b2:	83 fe fe             	cmp    $0xfffffffe,%esi
40b0b5:	0f 84 46 00 00 00    	je     0x40b101
40b0bb:	8b 54 24 34          	mov    0x34(%esp),%edx
40b0bf:	83 fa fe             	cmp    $0xfffffffe,%edx
40b0c2:	74 08                	je     0x40b0cc
40b0c4:	3b f2                	cmp    %edx,%esi
40b0c6:	0f 86 35 00 00 00    	jbe    0x40b101
40b0cc:	8d 34 76             	lea    (%esi,%esi,2),%esi
40b0cf:	8d 5c b3 10          	lea    0x10(%ebx,%esi,4),%ebx
40b0d3:	8b 0b                	mov    (%ebx),%ecx
40b0d5:	89 48 0c             	mov    %ecx,0xc(%eax)
40b0d8:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
40b0dc:	0f 85 c0 ff ff ff    	jne    0x40b0a2
40b0e2:	68 01 01 00 00       	push   $0x101
40b0e7:	8b 43 08             	mov    0x8(%ebx),%eax
40b0ea:	e8 d1 03 00 00       	call   0x40b4c0
40b0ef:	b9 01 00 00 00       	mov    $0x1,%ecx
40b0f4:	8b 43 08             	mov    0x8(%ebx),%eax
40b0f7:	e8 e4 03 00 00       	call   0x40b4e0
40b0fc:	e9 a1 ff ff ff       	jmp    0x40b0a2
40b101:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40b108:	83 c4 18             	add    $0x18,%esp
40b10b:	5f                   	pop    %edi
40b10c:	5e                   	pop    %esi
40b10d:	5b                   	pop    %ebx
40b10e:	c3                   	ret
40b10f:	cc                   	int3
40b110:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40b114:	f7 41 04 06 00 00 00 	testl  $0x6,0x4(%ecx)
40b11b:	b8 01 00 00 00       	mov    $0x1,%eax
40b120:	74 33                	je     0x40b155
40b122:	8b 44 24 08          	mov    0x8(%esp),%eax
40b126:	8b 48 08             	mov    0x8(%eax),%ecx
40b129:	33 c8                	xor    %eax,%ecx
40b12b:	e8 dc c2 ff ff       	call   0x40740c
40b130:	55                   	push   %ebp
40b131:	8b 68 18             	mov    0x18(%eax),%ebp
40b134:	ff 70 0c             	push   0xc(%eax)
40b137:	ff 70 10             	push   0x10(%eax)
40b13a:	ff 70 14             	push   0x14(%eax)
40b13d:	e8 2e ff ff ff       	call   0x40b070
40b142:	83 c4 0c             	add    $0xc,%esp
40b145:	5d                   	pop    %ebp
40b146:	8b 44 24 08          	mov    0x8(%esp),%eax
40b14a:	8b 54 24 10          	mov    0x10(%esp),%edx
40b14e:	89 02                	mov    %eax,(%edx)
40b150:	b8 03 00 00 00       	mov    $0x3,%eax
40b155:	c3                   	ret
40b156:	cc                   	int3
40b157:	cc                   	int3
40b158:	cc                   	int3
40b159:	cc                   	int3
40b15a:	cc                   	int3
40b15b:	cc                   	int3
40b15c:	cc                   	int3
40b15d:	cc                   	int3
40b15e:	cc                   	int3
40b15f:	cc                   	int3
40b160:	55                   	push   %ebp
40b161:	56                   	push   %esi
40b162:	57                   	push   %edi
40b163:	53                   	push   %ebx
40b164:	8b ea                	mov    %edx,%ebp
40b166:	33 c0                	xor    %eax,%eax
40b168:	33 db                	xor    %ebx,%ebx
40b16a:	33 d2                	xor    %edx,%edx
40b16c:	33 f6                	xor    %esi,%esi
40b16e:	33 ff                	xor    %edi,%edi
40b170:	ff d1                	call   *%ecx
40b172:	5b                   	pop    %ebx
40b173:	5f                   	pop    %edi
40b174:	5e                   	pop    %esi
40b175:	5d                   	pop    %ebp
40b176:	c3                   	ret
40b177:	cc                   	int3
40b178:	cc                   	int3
40b179:	cc                   	int3
40b17a:	cc                   	int3
40b17b:	cc                   	int3
40b17c:	cc                   	int3
40b17d:	cc                   	int3
40b17e:	cc                   	int3
40b17f:	cc                   	int3
40b180:	8b ea                	mov    %edx,%ebp
40b182:	8b f1                	mov    %ecx,%esi
40b184:	8b c1                	mov    %ecx,%eax
40b186:	6a 01                	push   $0x1
40b188:	e8 33 03 00 00       	call   0x40b4c0
40b18d:	33 c0                	xor    %eax,%eax
40b18f:	33 db                	xor    %ebx,%ebx
40b191:	33 c9                	xor    %ecx,%ecx
40b193:	33 d2                	xor    %edx,%edx
40b195:	33 ff                	xor    %edi,%edi
40b197:	ff e6                	jmp    *%esi
40b199:	cc                   	int3
40b19a:	cc                   	int3
40b19b:	cc                   	int3
40b19c:	cc                   	int3
40b19d:	cc                   	int3
40b19e:	cc                   	int3
40b19f:	cc                   	int3
40b1a0:	55                   	push   %ebp
40b1a1:	8b ec                	mov    %esp,%ebp
40b1a3:	53                   	push   %ebx
40b1a4:	56                   	push   %esi
40b1a5:	57                   	push   %edi
40b1a6:	6a 00                	push   $0x0
40b1a8:	52                   	push   %edx
40b1a9:	68 b5 b1 40 00       	push   $0x40b1b5
40b1ae:	51                   	push   %ecx
40b1af:	ff 15 90 40 42 00    	call   *0x424090
40b1b5:	5f                   	pop    %edi
40b1b6:	5e                   	pop    %esi
40b1b7:	5b                   	pop    %ebx
40b1b8:	5d                   	pop    %ebp
40b1b9:	c3                   	ret
40b1ba:	cc                   	int3
40b1bb:	cc                   	int3
40b1bc:	cc                   	int3
40b1bd:	cc                   	int3
40b1be:	cc                   	int3
40b1bf:	cc                   	int3
40b1c0:	55                   	push   %ebp
40b1c1:	8b 6c 24 08          	mov    0x8(%esp),%ebp
40b1c5:	52                   	push   %edx
40b1c6:	51                   	push   %ecx
40b1c7:	ff 74 24 14          	push   0x14(%esp)
40b1cb:	e8 a0 fe ff ff       	call   0x40b070
40b1d0:	83 c4 0c             	add    $0xc,%esp
40b1d3:	5d                   	pop    %ebp
40b1d4:	c2 08 00             	ret    $0x8
40b1d7:	56                   	push   %esi
40b1d8:	57                   	push   %edi
40b1d9:	bf 9c 45 43 00       	mov    $0x43459c,%edi
40b1de:	33 f6                	xor    %esi,%esi
40b1e0:	6a 00                	push   $0x0
40b1e2:	68 a0 0f 00 00       	push   $0xfa0
40b1e7:	57                   	push   %edi
40b1e8:	e8 27 02 00 00       	call   0x40b414
40b1ed:	83 c4 0c             	add    $0xc,%esp
40b1f0:	85 c0                	test   %eax,%eax
40b1f2:	74 15                	je     0x40b209
40b1f4:	ff 05 b4 45 43 00    	incl   0x4345b4
40b1fa:	83 c6 18             	add    $0x18,%esi
40b1fd:	83 c7 18             	add    $0x18,%edi
40b200:	83 fe 18             	cmp    $0x18,%esi
40b203:	72 db                	jb     0x40b1e0
40b205:	b0 01                	mov    $0x1,%al
40b207:	eb 07                	jmp    0x40b210
40b209:	e8 05 00 00 00       	call   0x40b213
40b20e:	32 c0                	xor    %al,%al
40b210:	5f                   	pop    %edi
40b211:	5e                   	pop    %esi
40b212:	c3                   	ret
40b213:	56                   	push   %esi
40b214:	8b 35 b4 45 43 00    	mov    0x4345b4,%esi
40b21a:	85 f6                	test   %esi,%esi
40b21c:	74 20                	je     0x40b23e
40b21e:	6b c6 18             	imul   $0x18,%esi,%eax
40b221:	57                   	push   %edi
40b222:	8d b8 84 45 43 00    	lea    0x434584(%eax),%edi
40b228:	57                   	push   %edi
40b229:	ff 15 44 40 42 00    	call   *0x424044
40b22f:	ff 0d b4 45 43 00    	decl   0x4345b4
40b235:	83 ef 18             	sub    $0x18,%edi
40b238:	83 ee 01             	sub    $0x1,%esi
40b23b:	75 eb                	jne    0x40b228
40b23d:	5f                   	pop    %edi
40b23e:	b0 01                	mov    $0x1,%al
40b240:	5e                   	pop    %esi
40b241:	c3                   	ret
40b242:	55                   	push   %ebp
40b243:	8b ec                	mov    %esp,%ebp
40b245:	51                   	push   %ecx
40b246:	53                   	push   %ebx
40b247:	56                   	push   %esi
40b248:	57                   	push   %edi
40b249:	8b 7d 08             	mov    0x8(%ebp),%edi
40b24c:	eb 6f                	jmp    0x40b2bd
40b24e:	8b 07                	mov    (%edi),%eax
40b250:	8d 1c 85 f4 45 43 00 	lea    0x4345f4(,%eax,4),%ebx
40b257:	8b 33                	mov    (%ebx),%esi
40b259:	85 f6                	test   %esi,%esi
40b25b:	74 07                	je     0x40b264
40b25d:	83 fe ff             	cmp    $0xffffffff,%esi
40b260:	75 76                	jne    0x40b2d8
40b262:	eb 56                	jmp    0x40b2ba
40b264:	8b 04 85 a0 5b 42 00 	mov    0x425ba0(,%eax,4),%eax
40b26b:	68 00 08 00 00       	push   $0x800
40b270:	6a 00                	push   $0x0
40b272:	50                   	push   %eax
40b273:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b276:	ff 15 b8 40 42 00    	call   *0x4240b8
40b27c:	8b f0                	mov    %eax,%esi
40b27e:	85 f6                	test   %esi,%esi
40b280:	75 47                	jne    0x40b2c9
40b282:	ff 15 98 40 42 00    	call   *0x424098
40b288:	83 f8 57             	cmp    $0x57,%eax
40b28b:	75 28                	jne    0x40b2b5
40b28d:	8b 75 fc             	mov    -0x4(%ebp),%esi
40b290:	6a 07                	push   $0x7
40b292:	68 38 5c 42 00       	push   $0x425c38
40b297:	56                   	push   %esi
40b298:	e8 0b 7a 00 00       	call   0x412ca8
40b29d:	83 c4 0c             	add    $0xc,%esp
40b2a0:	85 c0                	test   %eax,%eax
40b2a2:	74 11                	je     0x40b2b5
40b2a4:	6a 00                	push   $0x0
40b2a6:	6a 00                	push   $0x0
40b2a8:	56                   	push   %esi
40b2a9:	ff 15 b8 40 42 00    	call   *0x4240b8
40b2af:	8b f0                	mov    %eax,%esi
40b2b1:	85 f6                	test   %esi,%esi
40b2b3:	75 14                	jne    0x40b2c9
40b2b5:	83 c8 ff             	or     $0xffffffff,%eax
40b2b8:	87 03                	xchg   %eax,(%ebx)
40b2ba:	83 c7 04             	add    $0x4,%edi
40b2bd:	3b 7d 0c             	cmp    0xc(%ebp),%edi
40b2c0:	75 8c                	jne    0x40b24e
40b2c2:	33 c0                	xor    %eax,%eax
40b2c4:	5f                   	pop    %edi
40b2c5:	5e                   	pop    %esi
40b2c6:	5b                   	pop    %ebx
40b2c7:	c9                   	leave
40b2c8:	c3                   	ret
40b2c9:	8b c6                	mov    %esi,%eax
40b2cb:	87 03                	xchg   %eax,(%ebx)
40b2cd:	85 c0                	test   %eax,%eax
40b2cf:	74 07                	je     0x40b2d8
40b2d1:	56                   	push   %esi
40b2d2:	ff 15 b4 40 42 00    	call   *0x4240b4
40b2d8:	8b c6                	mov    %esi,%eax
40b2da:	eb e8                	jmp    0x40b2c4
40b2dc:	55                   	push   %ebp
40b2dd:	8b ec                	mov    %esp,%ebp
40b2df:	8b 45 08             	mov    0x8(%ebp),%eax
40b2e2:	56                   	push   %esi
40b2e3:	57                   	push   %edi
40b2e4:	8d 3c 85 00 46 43 00 	lea    0x434600(,%eax,4),%edi
40b2eb:	8b 07                	mov    (%edi),%eax
40b2ed:	83 ce ff             	or     $0xffffffff,%esi
40b2f0:	3b c6                	cmp    %esi,%eax
40b2f2:	74 2b                	je     0x40b31f
40b2f4:	85 c0                	test   %eax,%eax
40b2f6:	75 29                	jne    0x40b321
40b2f8:	ff 75 14             	push   0x14(%ebp)
40b2fb:	ff 75 10             	push   0x10(%ebp)
40b2fe:	e8 3f ff ff ff       	call   0x40b242
40b303:	59                   	pop    %ecx
40b304:	59                   	pop    %ecx
40b305:	85 c0                	test   %eax,%eax
40b307:	74 14                	je     0x40b31d
40b309:	ff 75 0c             	push   0xc(%ebp)
40b30c:	50                   	push   %eax
40b30d:	ff 15 00 40 42 00    	call   *0x424000
40b313:	85 c0                	test   %eax,%eax
40b315:	74 06                	je     0x40b31d
40b317:	8b c8                	mov    %eax,%ecx
40b319:	87 0f                	xchg   %ecx,(%edi)
40b31b:	eb 04                	jmp    0x40b321
40b31d:	87 37                	xchg   %esi,(%edi)
40b31f:	33 c0                	xor    %eax,%eax
40b321:	5f                   	pop    %edi
40b322:	5e                   	pop    %esi
40b323:	5d                   	pop    %ebp
40b324:	c3                   	ret
40b325:	55                   	push   %ebp
40b326:	8b ec                	mov    %esp,%ebp
40b328:	56                   	push   %esi
40b329:	68 50 5c 42 00       	push   $0x425c50
40b32e:	68 48 5c 42 00       	push   $0x425c48
40b333:	68 50 5c 42 00       	push   $0x425c50
40b338:	6a 00                	push   $0x0
40b33a:	e8 9d ff ff ff       	call   0x40b2dc
40b33f:	8b f0                	mov    %eax,%esi
40b341:	83 c4 10             	add    $0x10,%esp
40b344:	85 f6                	test   %esi,%esi
40b346:	74 10                	je     0x40b358
40b348:	ff 75 08             	push   0x8(%ebp)
40b34b:	8b ce                	mov    %esi,%ecx
40b34d:	ff 15 54 41 42 00    	call   *0x424154
40b353:	ff d6                	call   *%esi
40b355:	5e                   	pop    %esi
40b356:	5d                   	pop    %ebp
40b357:	c3                   	ret
40b358:	5e                   	pop    %esi
40b359:	5d                   	pop    %ebp
40b35a:	ff 25 a4 40 42 00    	jmp    *0x4240a4
40b360:	55                   	push   %ebp
40b361:	8b ec                	mov    %esp,%ebp
40b363:	56                   	push   %esi
40b364:	68 64 5c 42 00       	push   $0x425c64
40b369:	68 5c 5c 42 00       	push   $0x425c5c
40b36e:	68 64 5c 42 00       	push   $0x425c64
40b373:	6a 01                	push   $0x1
40b375:	e8 62 ff ff ff       	call   0x40b2dc