40b150:	66 8b 0b             	mov    (%ebx),%cx
40b153:	e8 ef cd ff ff       	call   0x407f47
40b158:	85 c0                	test   %eax,%eax
40b15a:	0f 85 69 1b 01 00    	jne    0x41ccc9
40b160:	66 8b 85 b4 fb ff ff 	mov    -0x44c(%ebp),%ax
40b167:	e9 d0 fd ff ff       	jmp    0x40af3c
40b16c:	66 83 3b 2f          	cmpw   $0x2f,(%ebx)
40b170:	0f 85 ce fd ff ff    	jne    0x40af44
40b176:	e9 59 1b 01 00       	jmp    0x41ccd4
40b17b:	83 3d 48 67 43 00 00 	cmpl   $0x0,0x436748
40b182:	74 01                	je     0x40b185
40b184:	c3                   	ret
40b185:	80 3d 5c 67 43 00 00 	cmpb   $0x0,0x43675c
40b18c:	74 f6                	je     0x40b184
40b18e:	e9 67 1b 01 00       	jmp    0x41ccfa
40b193:	e8 e0 ba 00 00       	call   0x416c78
40b198:	6a 00                	push   $0x0
40b19a:	6a 0f                	push   $0xf
40b19c:	e9 3a 1b 01 00       	jmp    0x41ccdb
40b1a1:	cc                   	int3
40b1a2:	cc                   	int3
40b1a3:	cc                   	int3
40b1a4:	cc                   	int3
40b1a5:	cc                   	int3
40b1a6:	cc                   	int3
40b1a7:	cc                   	int3
40b1a8:	cc                   	int3
40b1a9:	cc                   	int3
40b1aa:	cc                   	int3
40b1ab:	cc                   	int3
40b1ac:	cc                   	int3
40b1ad:	cc                   	int3
40b1ae:	cc                   	int3
40b1af:	cc                   	int3
40b1b0:	8b ff                	mov    %edi,%edi
40b1b2:	55                   	push   %ebp
40b1b3:	8b ec                	mov    %esp,%ebp
40b1b5:	83 ec 08             	sub    $0x8,%esp
40b1b8:	53                   	push   %ebx
40b1b9:	56                   	push   %esi
40b1ba:	8b f1                	mov    %ecx,%esi
40b1bc:	33 db                	xor    %ebx,%ebx
40b1be:	57                   	push   %edi
40b1bf:	89 75 f8             	mov    %esi,-0x8(%ebp)
40b1c2:	8b 46 38             	mov    0x38(%esi),%eax
40b1c5:	85 c0                	test   %eax,%eax
40b1c7:	74 16                	je     0x40b1df
40b1c9:	8b d8                	mov    %eax,%ebx
40b1cb:	8d 4b 02             	lea    0x2(%ebx),%ecx
40b1ce:	8b ff                	mov    %edi,%edi
40b1d0:	66 8b 03             	mov    (%ebx),%ax
40b1d3:	83 c3 02             	add    $0x2,%ebx
40b1d6:	66 85 c0             	test   %ax,%ax
40b1d9:	75 f5                	jne    0x40b1d0
40b1db:	2b d9                	sub    %ecx,%ebx
40b1dd:	d1 fb                	sar    $1,%ebx
40b1df:	8b 4e 3c             	mov    0x3c(%esi),%ecx
40b1e2:	85 c9                	test   %ecx,%ecx
40b1e4:	74 1c                	je     0x40b202
40b1e6:	8d 51 02             	lea    0x2(%ecx),%edx
40b1e9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40b1f0:	66 8b 01             	mov    (%ecx),%ax
40b1f3:	83 c1 02             	add    $0x2,%ecx
40b1f6:	66 85 c0             	test   %ax,%ax
40b1f9:	75 f5                	jne    0x40b1f0
40b1fb:	2b ca                	sub    %edx,%ecx
40b1fd:	43                   	inc    %ebx
40b1fe:	d1 f9                	sar    $1,%ecx
40b200:	03 d9                	add    %ecx,%ebx
40b202:	43                   	inc    %ebx
40b203:	8d 0c 1b             	lea    (%ebx,%ebx,1),%ecx
40b206:	e8 c5 2a 00 00       	call   0x40dcd0
40b20b:	8b f8                	mov    %eax,%edi
40b20d:	89 7d fc             	mov    %edi,-0x4(%ebp)
40b210:	85 ff                	test   %edi,%edi
40b212:	0f 84 a1 01 00 00    	je     0x40b3b9
40b218:	8b 76 38             	mov    0x38(%esi),%esi
40b21b:	85 db                	test   %ebx,%ebx
40b21d:	74 49                	je     0x40b268
40b21f:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
40b225:	0f 87 fa 1a 01 00    	ja     0x41cd25
40b22b:	8b cf                	mov    %edi,%ecx
40b22d:	8b d3                	mov    %ebx,%edx
40b22f:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
40b234:	2b fb                	sub    %ebx,%edi
40b236:	2b f0                	sub    %eax,%esi
40b238:	8d 04 17             	lea    (%edi,%edx,1),%eax
40b23b:	85 c0                	test   %eax,%eax
40b23d:	74 19                	je     0x40b258
40b23f:	0f b7 04 0e          	movzwl (%esi,%ecx,1),%eax
40b243:	66 85 c0             	test   %ax,%ax
40b246:	74 10                	je     0x40b258
40b248:	66 89 01             	mov    %ax,(%ecx)
40b24b:	83 c1 02             	add    $0x2,%ecx
40b24e:	83 ea 01             	sub    $0x1,%edx
40b251:	75 e5                	jne    0x40b238
40b253:	e9 c5 1a 01 00       	jmp    0x41cd1d
40b258:	85 d2                	test   %edx,%edx
40b25a:	0f 84 bd 1a 01 00    	je     0x41cd1d
40b260:	8b 7d fc             	mov    -0x4(%ebp),%edi
40b263:	33 c0                	xor    %eax,%eax
40b265:	66 89 01             	mov    %ax,(%ecx)
40b268:	8b 45 f8             	mov    -0x8(%ebp),%eax
40b26b:	83 78 3c 00          	cmpl   $0x0,0x3c(%eax)
40b26f:	0f 84 22 01 00 00    	je     0x40b397
40b275:	33 d2                	xor    %edx,%edx
40b277:	85 db                	test   %ebx,%ebx
40b279:	0f 84 b8 1a 01 00    	je     0x41cd37
40b27f:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
40b285:	0f 87 ac 1a 01 00    	ja     0x41cd37
40b28b:	85 d2                	test   %edx,%edx
40b28d:	0f 88 b3 1a 01 00    	js     0x41cd46
40b293:	33 d2                	xor    %edx,%edx
40b295:	8b cb                	mov    %ebx,%ecx
40b297:	8b c7                	mov    %edi,%eax
40b299:	85 db                	test   %ebx,%ebx
40b29b:	0f 84 a0 1a 01 00    	je     0x41cd41
40b2a1:	66 39 10             	cmp    %dx,(%eax)
40b2a4:	74 0d                	je     0x40b2b3
40b2a6:	83 c0 02             	add    $0x2,%eax
40b2a9:	83 e9 01             	sub    $0x1,%ecx
40b2ac:	75 f3                	jne    0x40b2a1
40b2ae:	e9 8e 1a 01 00       	jmp    0x41cd41
40b2b3:	85 c9                	test   %ecx,%ecx
40b2b5:	0f 84 86 1a 01 00    	je     0x41cd41
40b2bb:	8b f3                	mov    %ebx,%esi
40b2bd:	2b f1                	sub    %ecx,%esi
40b2bf:	85 d2                	test   %edx,%edx
40b2c1:	78 3d                	js     0x40b300
40b2c3:	8b cb                	mov    %ebx,%ecx
40b2c5:	8d 14 77             	lea    (%edi,%esi,2),%edx
40b2c8:	2b ce                	sub    %esi,%ecx
40b2ca:	0f 84 e1 00 00 00    	je     0x40b3b1
40b2d0:	8b c1                	mov    %ecx,%eax
40b2d2:	bf 4c 23 40 00       	mov    $0x40234c,%edi
40b2d7:	2b c3                	sub    %ebx,%eax
40b2d9:	05 fe ff ff 7f       	add    $0x7ffffffe,%eax
40b2de:	03 c6                	add    %esi,%eax
40b2e0:	2b fa                	sub    %edx,%edi
40b2e2:	85 c0                	test   %eax,%eax
40b2e4:	74 0d                	je     0x40b2f3
40b2e6:	0f b7 34 17          	movzwl (%edi,%edx,1),%esi
40b2ea:	66 85 f6             	test   %si,%si
40b2ed:	0f 85 ae 00 00 00    	jne    0x40b3a1
40b2f3:	85 c9                	test   %ecx,%ecx
40b2f5:	0f 84 b6 00 00 00    	je     0x40b3b1
40b2fb:	33 c0                	xor    %eax,%eax
40b2fd:	66 89 02             	mov    %ax,(%edx)
40b300:	8b 45 f8             	mov    -0x8(%ebp),%eax
40b303:	33 f6                	xor    %esi,%esi
40b305:	8b 78 3c             	mov    0x3c(%eax),%edi
40b308:	85 db                	test   %ebx,%ebx
40b30a:	0f 84 3d 1a 01 00    	je     0x41cd4d
40b310:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
40b316:	0f 87 31 1a 01 00    	ja     0x41cd4d
40b31c:	85 f6                	test   %esi,%esi
40b31e:	0f 88 99 00 00 00    	js     0x40b3bd
40b324:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b327:	33 f6                	xor    %esi,%esi
40b329:	8b cb                	mov    %ebx,%ecx
40b32b:	85 db                	test   %ebx,%ebx
40b32d:	0f 84 24 1a 01 00    	je     0x41cd57
40b333:	66 39 30             	cmp    %si,(%eax)
40b336:	74 0d                	je     0x40b345
40b338:	83 c0 02             	add    $0x2,%eax
40b33b:	83 e9 01             	sub    $0x1,%ecx
40b33e:	75 f3                	jne    0x40b333
40b340:	e9 12 1a 01 00       	jmp    0x41cd57
40b345:	85 c9                	test   %ecx,%ecx
40b347:	0f 84 0a 1a 01 00    	je     0x41cd57
40b34d:	8b d3                	mov    %ebx,%edx
40b34f:	2b d1                	sub    %ecx,%edx
40b351:	85 f6                	test   %esi,%esi
40b353:	78 42                	js     0x40b397
40b355:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b358:	8b f3                	mov    %ebx,%esi
40b35a:	8d 04 50             	lea    (%eax,%edx,2),%eax
40b35d:	2b f2                	sub    %edx,%esi
40b35f:	74 28                	je     0x40b389
40b361:	8b ce                	mov    %esi,%ecx
40b363:	2b cb                	sub    %ebx,%ecx
40b365:	81 c1 fe ff ff 7f    	add    $0x7ffffffe,%ecx
40b36b:	03 ca                	add    %edx,%ecx
40b36d:	2b f8                	sub    %eax,%edi
40b36f:	90                   	nop
40b370:	85 c9                	test   %ecx,%ecx
40b372:	74 1a                	je     0x40b38e
40b374:	0f b7 14 07          	movzwl (%edi,%eax,1),%edx
40b378:	66 85 d2             	test   %dx,%dx
40b37b:	74 11                	je     0x40b38e
40b37d:	66 89 10             	mov    %dx,(%eax)
40b380:	49                   	dec    %ecx
40b381:	83 c0 02             	add    $0x2,%eax
40b384:	83 ee 01             	sub    $0x1,%esi
40b387:	75 e7                	jne    0x40b370
40b389:	83 e8 02             	sub    $0x2,%eax
40b38c:	eb 04                	jmp    0x40b392
40b38e:	85 f6                	test   %esi,%esi
40b390:	74 f7                	je     0x40b389
40b392:	33 c9                	xor    %ecx,%ecx
40b394:	66 89 08             	mov    %cx,(%eax)
40b397:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b39a:	5f                   	pop    %edi
40b39b:	5e                   	pop    %esi
40b39c:	5b                   	pop    %ebx
40b39d:	8b e5                	mov    %ebp,%esp
40b39f:	5d                   	pop    %ebp
40b3a0:	c3                   	ret
40b3a1:	66 89 32             	mov    %si,(%edx)
40b3a4:	48                   	dec    %eax
40b3a5:	83 c2 02             	add    $0x2,%edx
40b3a8:	83 e9 01             	sub    $0x1,%ecx
40b3ab:	0f 85 31 ff ff ff    	jne    0x40b2e2
40b3b1:	83 ea 02             	sub    $0x2,%edx
40b3b4:	e9 42 ff ff ff       	jmp    0x40b2fb
40b3b9:	33 c0                	xor    %eax,%eax
40b3bb:	eb dd                	jmp    0x40b39a
40b3bd:	33 d2                	xor    %edx,%edx
40b3bf:	eb 90                	jmp    0x40b351
40b3c1:	8b ff                	mov    %edi,%edi
40b3c3:	55                   	push   %ebp
40b3c4:	8b ec                	mov    %esp,%ebp
40b3c6:	51                   	push   %ecx
40b3c7:	51                   	push   %ecx
40b3c8:	53                   	push   %ebx
40b3c9:	56                   	push   %esi
40b3ca:	57                   	push   %edi
40b3cb:	89 55 f8             	mov    %edx,-0x8(%ebp)
40b3ce:	e8 ac f7 ff ff       	call   0x40ab7f
40b3d3:	8b f0                	mov    %eax,%esi
40b3d5:	0f b7 06             	movzwl (%esi),%eax
40b3d8:	83 f8 3a             	cmp    $0x3a,%eax
40b3db:	75 76                	jne    0x40b453
40b3dd:	83 c6 02             	add    $0x2,%esi
40b3e0:	8a 5d 0c             	mov    0xc(%ebp),%bl
40b3e3:	84 db                	test   %bl,%bl
40b3e5:	0f 84 76 19 01 00    	je     0x41cd61
40b3eb:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40b3ef:	0f b7 3e             	movzwl (%esi),%edi
40b3f2:	84 db                	test   %bl,%bl
40b3f4:	74 12                	je     0x40b408
40b3f6:	57                   	push   %edi
40b3f7:	68 d0 22 40 00       	push   $0x4022d0
40b3fc:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40b402:	59                   	pop    %ecx
40b403:	59                   	pop    %ecx
40b404:	85 c0                	test   %eax,%eax
40b406:	75 38                	jne    0x40b440
40b408:	57                   	push   %edi
40b409:	68 b4 22 40 00       	push   $0x4022b4
40b40e:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40b414:	59                   	pop    %ecx
40b415:	59                   	pop    %ecx
40b416:	85 c0                	test   %eax,%eax
40b418:	75 26                	jne    0x40b440
40b41a:	84 db                	test   %bl,%bl
40b41c:	0f 84 4d 19 01 00    	je     0x41cd6f
40b422:	0f b7 d7             	movzwl %di,%edx
40b425:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b428:	83 c6 02             	add    $0x2,%esi
40b42b:	8b 7d f8             	mov    -0x8(%ebp),%edi
40b42e:	8d 41 01             	lea    0x1(%ecx),%eax
40b431:	66 89 14 4f          	mov    %dx,(%edi,%ecx,2)
40b435:	0f b7 3e             	movzwl (%esi),%edi
40b438:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b43b:	83 f8 7f             	cmp    $0x7f,%eax
40b43e:	72 b2                	jb     0x40b3f2
40b440:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b443:	33 d2                	xor    %edx,%edx
40b445:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40b448:	5f                   	pop    %edi
40b449:	5e                   	pop    %esi
40b44a:	5b                   	pop    %ebx
40b44b:	66 89 14 41          	mov    %dx,(%ecx,%eax,2)
40b44f:	c9                   	leave
40b450:	c2 08 00             	ret    $0x8
40b453:	83 f8 2b             	cmp    $0x2b,%eax
40b456:	75 88                	jne    0x40b3e0
40b458:	eb 83                	jmp    0x40b3dd
40b45a:	8b ff                	mov    %edi,%edi
40b45c:	55                   	push   %ebp
40b45d:	8b ec                	mov    %esp,%ebp
40b45f:	83 e4 f8             	and    $0xfffffff8,%esp
40b462:	51                   	push   %ecx
40b463:	53                   	push   %ebx
40b464:	56                   	push   %esi
40b465:	57                   	push   %edi
40b466:	8b fa                	mov    %edx,%edi
40b468:	8b f1                	mov    %ecx,%esi
40b46a:	33 db                	xor    %ebx,%ebx
40b46c:	85 f6                	test   %esi,%esi
40b46e:	74 4f                	je     0x40b4bf
40b470:	8b 06                	mov    (%esi),%eax
40b472:	83 f8 33             	cmp    $0x33,%eax
40b475:	0f 8f b3 00 00 00    	jg     0x40b52e
40b47b:	83 f8 2e             	cmp    $0x2e,%eax
40b47e:	7d 48                	jge    0x40b4c8
40b480:	2b c3                	sub    %ebx,%eax
40b482:	75 78                	jne    0x40b4fc
40b484:	57                   	push   %edi
40b485:	53                   	push   %ebx
40b486:	8d 56 38             	lea    0x38(%esi),%edx
40b489:	8b ce                	mov    %esi,%ecx
40b48b:	e8 20 01 00 00       	call   0x40b5b0
40b490:	85 c0                	test   %eax,%eax
40b492:	0f 85 0c 01 00 00    	jne    0x40b5a4
40b498:	57                   	push   %edi
40b499:	6a 01                	push   $0x1
40b49b:	8d 56 3c             	lea    0x3c(%esi),%edx
40b49e:	8b ce                	mov    %esi,%ecx
40b4a0:	e8 0b 01 00 00       	call   0x40b5b0
40b4a5:	85 c0                	test   %eax,%eax
40b4a7:	0f 85 f7 00 00 00    	jne    0x40b5a4
40b4ad:	8b 5e 34             	mov    0x34(%esi),%ebx
40b4b0:	6a 02                	push   $0x2
40b4b2:	58                   	pop    %eax
40b4b3:	89 44 24 0c          	mov    %eax,0xc(%esp)
40b4b7:	85 db                	test   %ebx,%ebx
40b4b9:	0f 85 b3 00 00 00    	jne    0x40b572
40b4bf:	33 c0                	xor    %eax,%eax
40b4c1:	5f                   	pop    %edi
40b4c2:	5e                   	pop    %esi
40b4c3:	5b                   	pop    %ebx
40b4c4:	8b e5                	mov    %ebp,%esp
40b4c6:	5d                   	pop    %ebp
40b4c7:	c3                   	ret
40b4c8:	8b 4e 38             	mov    0x38(%esi),%ecx
40b4cb:	8b d7                	mov    %edi,%edx
40b4cd:	e8 88 ff ff ff       	call   0x40b45a
40b4d2:	85 c0                	test   %eax,%eax
40b4d4:	0f 85 ca 00 00 00    	jne    0x40b5a4
40b4da:	8b 4e 3c             	mov    0x3c(%esi),%ecx
40b4dd:	8b d7                	mov    %edi,%edx
40b4df:	e8 76 ff ff ff       	call   0x40b45a
40b4e4:	85 c0                	test   %eax,%eax
40b4e6:	0f 85 b8 00 00 00    	jne    0x40b5a4
40b4ec:	8b 46 34             	mov    0x34(%esi),%eax
40b4ef:	89 44 24 0c          	mov    %eax,0xc(%esp)
40b4f3:	85 c0                	test   %eax,%eax
40b4f5:	74 c8                	je     0x40b4bf
40b4f7:	e9 aa 18 01 00       	jmp    0x41cda6
40b4fc:	83 e8 2b             	sub    $0x2b,%eax
40b4ff:	74 4b                	je     0x40b54c
40b501:	83 e8 01             	sub    $0x1,%eax
40b504:	75 5e                	jne    0x40b564
40b506:	8b 4e 3c             	mov    0x3c(%esi),%ecx
40b509:	8b d7                	mov    %edi,%edx
40b50b:	e8 4a ff ff ff       	call   0x40b45a
40b510:	85 c0                	test   %eax,%eax
40b512:	0f 85 8c 00 00 00    	jne    0x40b5a4