41b196:	89 45 f4             	mov    %eax,-0xc(%ebp)
41b199:	c6 45 f8 0b          	movb   $0xb,-0x8(%ebp)
41b19d:	8d 45 ec             	lea    -0x14(%ebp),%eax
41b1a0:	50                   	push   %eax
41b1a1:	6a 01                	push   $0x1
41b1a3:	8b 0d ac 44 47 00    	mov    0x4744ac,%ecx
41b1a9:	b2 01                	mov    $0x1,%dl
41b1ab:	a1 98 5b 41 00       	mov    0x415b98,%eax
41b1b0:	e8 37 0a ff ff       	call   0x40bbec
41b1b5:	e8 d2 88 fe ff       	call   0x403a8c
41b1ba:	33 c0                	xor    %eax,%eax
41b1bc:	5a                   	pop    %edx
41b1bd:	59                   	pop    %ecx
41b1be:	59                   	pop    %ecx
41b1bf:	64 89 10             	mov    %edx,%fs:(%eax)
41b1c2:	68 dc b1 41 00       	push   $0x41b1dc
41b1c7:	8d 45 dc             	lea    -0x24(%ebp),%eax
41b1ca:	ba 04 00 00 00       	mov    $0x4,%edx
41b1cf:	e8 a0 8e fe ff       	call   0x404074
41b1d4:	c3                   	ret
41b1d5:	e9 7a 88 fe ff       	jmp    0x403a54
41b1da:	eb eb                	jmp    0x41b1c7
41b1dc:	8b c3                	mov    %ebx,%eax
41b1de:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
41b1e2:	74 0f                	je     0x41b1f3
41b1e4:	e8 93 84 fe ff       	call   0x40367c
41b1e9:	64 8f 05 00 00 00 00 	pop    %fs:0x0
41b1f0:	83 c4 0c             	add    $0xc,%esp
41b1f3:	8b c3                	mov    %ebx,%eax
41b1f5:	5f                   	pop    %edi
41b1f6:	5e                   	pop    %esi
41b1f7:	5b                   	pop    %ebx
41b1f8:	8b e5                	mov    %ebp,%esp
41b1fa:	5d                   	pop    %ebp
41b1fb:	c2 08 00             	ret    $0x8
41b1fe:	8b c0                	mov    %eax,%eax
41b200:	53                   	push   %ebx
41b201:	56                   	push   %esi
41b202:	e8 85 84 fe ff       	call   0x40368c
41b207:	8b da                	mov    %edx,%ebx
41b209:	8b f0                	mov    %eax,%esi
41b20b:	8b 46 04             	mov    0x4(%esi),%eax
41b20e:	85 c0                	test   %eax,%eax
41b210:	7c 05                	jl     0x41b217
41b212:	e8 d9 d4 fe ff       	call   0x4086f0
41b217:	8b d3                	mov    %ebx,%edx
41b219:	80 e2 fc             	and    $0xfc,%dl
41b21c:	8b c6                	mov    %esi,%eax
41b21e:	e8 8d 80 fe ff       	call   0x4032b0
41b223:	84 db                	test   %bl,%bl
41b225:	7e 07                	jle    0x41b22e
41b227:	8b c6                	mov    %esi,%eax
41b229:	e8 46 84 fe ff       	call   0x403674
41b22e:	5e                   	pop    %esi
41b22f:	5b                   	pop    %ebx
41b230:	c3                   	ret
41b231:	8d 40 00             	lea    0x0(%eax),%eax
41b234:	89 50 04             	mov    %edx,0x4(%eax)
41b237:	89 48 08             	mov    %ecx,0x8(%eax)
41b23a:	c3                   	ret
41b23b:	90                   	nop
41b23c:	53                   	push   %ebx
41b23d:	56                   	push   %esi
41b23e:	57                   	push   %edi
41b23f:	8b d8                	mov    %eax,%ebx
41b241:	8b 7b 0c             	mov    0xc(%ebx),%edi
41b244:	85 ff                	test   %edi,%edi
41b246:	7c 24                	jl     0x41b26c
41b248:	85 c9                	test   %ecx,%ecx
41b24a:	7c 20                	jl     0x41b26c
41b24c:	8b 73 08             	mov    0x8(%ebx),%esi
41b24f:	2b f7                	sub    %edi,%esi
41b251:	85 f6                	test   %esi,%esi
41b253:	7e 17                	jle    0x41b26c
41b255:	3b ce                	cmp    %esi,%ecx
41b257:	7d 02                	jge    0x41b25b
41b259:	8b f1                	mov    %ecx,%esi
41b25b:	8b 43 04             	mov    0x4(%ebx),%eax
41b25e:	03 c7                	add    %edi,%eax
41b260:	8b ce                	mov    %esi,%ecx
41b262:	e8 89 76 fe ff       	call   0x4028f0
41b267:	01 73 0c             	add    %esi,0xc(%ebx)
41b26a:	eb 02                	jmp    0x41b26e
41b26c:	33 f6                	xor    %esi,%esi
41b26e:	8b c6                	mov    %esi,%eax
41b270:	5f                   	pop    %edi
41b271:	5e                   	pop    %esi
41b272:	5b                   	pop    %ebx
41b273:	c3                   	ret
41b274:	66 83 e9 01          	sub    $0x1,%cx
41b278:	72 09                	jb     0x41b283
41b27a:	74 0c                	je     0x41b288
41b27c:	66 ff c9             	dec    %cx
41b27f:	74 0c                	je     0x41b28d
41b281:	eb 10                	jmp    0x41b293
41b283:	89 50 0c             	mov    %edx,0xc(%eax)
41b286:	eb 0b                	jmp    0x41b293
41b288:	01 50 0c             	add    %edx,0xc(%eax)
41b28b:	eb 06                	jmp    0x41b293
41b28d:	03 50 08             	add    0x8(%eax),%edx
41b290:	89 50 0c             	mov    %edx,0xc(%eax)
41b293:	8b 40 0c             	mov    0xc(%eax),%eax
41b296:	c3                   	ret
41b297:	90                   	nop
41b298:	53                   	push   %ebx
41b299:	56                   	push   %esi
41b29a:	e8 ed 83 fe ff       	call   0x40368c
41b29f:	8b da                	mov    %edx,%ebx
41b2a1:	8b f0                	mov    %eax,%esi
41b2a3:	8b c6                	mov    %esi,%eax
41b2a5:	e8 1a 00 00 00       	call   0x41b2c4
41b2aa:	8b d3                	mov    %ebx,%edx
41b2ac:	80 e2 fc             	and    $0xfc,%dl
41b2af:	8b c6                	mov    %esi,%eax
41b2b1:	e8 fa 7f fe ff       	call   0x4032b0
41b2b6:	84 db                	test   %bl,%bl
41b2b8:	7e 07                	jle    0x41b2c1
41b2ba:	8b c6                	mov    %esi,%eax
41b2bc:	e8 b3 83 fe ff       	call   0x403674
41b2c1:	5e                   	pop    %esi
41b2c2:	5b                   	pop    %ebx
41b2c3:	c3                   	ret
41b2c4:	53                   	push   %ebx
41b2c5:	8b d8                	mov    %eax,%ebx
41b2c7:	33 d2                	xor    %edx,%edx
41b2c9:	8b c3                	mov    %ebx,%eax
41b2cb:	e8 44 00 00 00       	call   0x41b314
41b2d0:	33 c0                	xor    %eax,%eax
41b2d2:	89 43 08             	mov    %eax,0x8(%ebx)
41b2d5:	33 c0                	xor    %eax,%eax
41b2d7:	89 43 0c             	mov    %eax,0xc(%ebx)
41b2da:	5b                   	pop    %ebx
41b2db:	c3                   	ret
41b2dc:	53                   	push   %ebx
41b2dd:	56                   	push   %esi
41b2de:	57                   	push   %edi
41b2df:	8b fa                	mov    %edx,%edi
41b2e1:	8b f0                	mov    %eax,%esi
41b2e3:	6a 00                	push   $0x0
41b2e5:	6a 00                	push   $0x0
41b2e7:	8b c7                	mov    %edi,%eax
41b2e9:	e8 e6 f8 ff ff       	call   0x41abd4
41b2ee:	8b c7                	mov    %edi,%eax
41b2f0:	8b 10                	mov    (%eax),%edx
41b2f2:	ff 12                	call   *(%edx)
41b2f4:	8b d8                	mov    %eax,%ebx
41b2f6:	8b d3                	mov    %ebx,%edx
41b2f8:	8b c6                	mov    %esi,%eax
41b2fa:	8b 08                	mov    (%eax),%ecx
41b2fc:	ff 51 04             	call   *0x4(%ecx)
41b2ff:	85 db                	test   %ebx,%ebx
41b301:	74 0c                	je     0x41b30f
41b303:	8b 56 04             	mov    0x4(%esi),%edx
41b306:	8b cb                	mov    %ebx,%ecx
41b308:	8b c7                	mov    %edi,%eax
41b30a:	e8 d1 fa ff ff       	call   0x41ade0
41b30f:	5f                   	pop    %edi
41b310:	5e                   	pop    %esi
41b311:	5b                   	pop    %ebx
41b312:	c3                   	ret
41b313:	90                   	nop
41b314:	53                   	push   %ebx
41b315:	51                   	push   %ecx
41b316:	89 14 24             	mov    %edx,(%esp)
41b319:	8b d8                	mov    %eax,%ebx
41b31b:	8b d4                	mov    %esp,%edx
41b31d:	8b c3                	mov    %ebx,%eax
41b31f:	8b 08                	mov    (%eax),%ecx
41b321:	ff 51 1c             	call   *0x1c(%ecx)
41b324:	8b d0                	mov    %eax,%edx
41b326:	8b 4b 08             	mov    0x8(%ebx),%ecx
41b329:	8b c3                	mov    %ebx,%eax
41b32b:	e8 04 ff ff ff       	call   0x41b234
41b330:	8b 04 24             	mov    (%esp),%eax
41b333:	89 43 10             	mov    %eax,0x10(%ebx)
41b336:	5a                   	pop    %edx
41b337:	5b                   	pop    %ebx
41b338:	c3                   	ret
41b339:	8d 40 00             	lea    0x0(%eax),%eax
41b33c:	53                   	push   %ebx
41b33d:	56                   	push   %esi
41b33e:	57                   	push   %edi
41b33f:	8b f2                	mov    %edx,%esi
41b341:	8b d8                	mov    %eax,%ebx
41b343:	8b 7b 0c             	mov    0xc(%ebx),%edi
41b346:	8b d6                	mov    %esi,%edx
41b348:	8b c3                	mov    %ebx,%eax
41b34a:	e8 c5 ff ff ff       	call   0x41b314
41b34f:	89 73 08             	mov    %esi,0x8(%ebx)
41b352:	3b f7                	cmp    %edi,%esi
41b354:	7d 0d                	jge    0x41b363
41b356:	66 b9 02 00          	mov    $0x2,%cx
41b35a:	33 d2                	xor    %edx,%edx
41b35c:	8b c3                	mov    %ebx,%eax
41b35e:	8b 18                	mov    (%eax),%ebx
41b360:	ff 53 14             	call   *0x14(%ebx)
41b363:	5f                   	pop    %edi
41b364:	5e                   	pop    %esi
41b365:	5b                   	pop    %ebx
41b366:	c3                   	ret
41b367:	90                   	nop
41b368:	53                   	push   %ebx
41b369:	56                   	push   %esi
41b36a:	57                   	push   %edi
41b36b:	83 3a 00             	cmpl   $0x0,(%edx)
41b36e:	7e 17                	jle    0x41b387
41b370:	8b 0a                	mov    (%edx),%ecx
41b372:	3b 48 08             	cmp    0x8(%eax),%ecx
41b375:	74 10                	je     0x41b387
41b377:	8b 0a                	mov    (%edx),%ecx
41b379:	81 c1 ff 1f 00 00    	add    $0x1fff,%ecx
41b37f:	81 e1 00 e0 ff ff    	and    $0xffffe000,%ecx
41b385:	89 0a                	mov    %ecx,(%edx)
41b387:	8b 70 04             	mov    0x4(%eax),%esi
41b38a:	8b ce                	mov    %esi,%ecx
41b38c:	8b 3a                	mov    (%edx),%edi
41b38e:	8b 58 10             	mov    0x10(%eax),%ebx
41b391:	3b fb                	cmp    %ebx,%edi
41b393:	74 56                	je     0x41b3eb
41b395:	83 3a 00             	cmpl   $0x0,(%edx)
41b398:	75 0b                	jne    0x41b3a5
41b39a:	8b c6                	mov    %esi,%eax
41b39c:	e8 8b b8 fe ff       	call   0x406c2c
41b3a1:	33 c9                	xor    %ecx,%ecx
41b3a3:	eb 46                	jmp    0x41b3eb
41b3a5:	85 db                	test   %ebx,%ebx
41b3a7:	75 13                	jne    0x41b3bc
41b3a9:	a1 f4 47 47 00       	mov    0x4747f4,%eax
41b3ae:	0f b7 00             	movzwl (%eax),%eax
41b3b1:	8b 12                	mov    (%edx),%edx
41b3b3:	e8 48 b8 fe ff       	call   0x406c00
41b3b8:	8b c8                	mov    %eax,%ecx
41b3ba:	eb 14                	jmp    0x41b3d0
41b3bc:	8b 0d f4 47 47 00    	mov    0x4747f4,%ecx
41b3c2:	0f b7 09             	movzwl (%ecx),%ecx
41b3c5:	8b 12                	mov    (%edx),%edx
41b3c7:	8b c6                	mov    %esi,%eax
41b3c9:	e8 42 b8 fe ff       	call   0x406c10
41b3ce:	8b c8                	mov    %eax,%ecx
41b3d0:	85 c9                	test   %ecx,%ecx
41b3d2:	75 17                	jne    0x41b3eb
41b3d4:	8b 0d 88 48 47 00    	mov    0x474888,%ecx
41b3da:	b2 01                	mov    $0x1,%dl
41b3dc:	a1 80 5a 41 00       	mov    0x415a80,%eax
41b3e1:	e8 ca 07 ff ff       	call   0x40bbb0
41b3e6:	e8 a1 86 fe ff       	call   0x403a8c
41b3eb:	8b c1                	mov    %ecx,%eax
41b3ed:	5f                   	pop    %edi
41b3ee:	5e                   	pop    %esi
41b3ef:	5b                   	pop    %ebx
41b3f0:	c3                   	ret
41b3f1:	8d 40 00             	lea    0x0(%eax),%eax
41b3f4:	53                   	push   %ebx
41b3f5:	56                   	push   %esi
41b3f6:	57                   	push   %edi
41b3f7:	55                   	push   %ebp
41b3f8:	8b f1                	mov    %ecx,%esi
41b3fa:	8b ea                	mov    %edx,%ebp
41b3fc:	8b d8                	mov    %eax,%ebx
41b3fe:	8b 43 0c             	mov    0xc(%ebx),%eax
41b401:	85 c0                	test   %eax,%eax
41b403:	7c 38                	jl     0x41b43d
41b405:	85 f6                	test   %esi,%esi
41b407:	7c 34                	jl     0x41b43d
41b409:	8b f8                	mov    %eax,%edi
41b40b:	03 fe                	add    %esi,%edi
41b40d:	85 ff                	test   %edi,%edi
41b40f:	7e 2c                	jle    0x41b43d
41b411:	3b 7b 08             	cmp    0x8(%ebx),%edi
41b414:	7e 11                	jle    0x41b427
41b416:	3b 7b 10             	cmp    0x10(%ebx),%edi
41b419:	7e 09                	jle    0x41b424
41b41b:	8b d7                	mov    %edi,%edx
41b41d:	8b c3                	mov    %ebx,%eax
41b41f:	e8 f0 fe ff ff       	call   0x41b314
41b424:	89 7b 08             	mov    %edi,0x8(%ebx)
41b427:	8b 53 04             	mov    0x4(%ebx),%edx
41b42a:	03 53 0c             	add    0xc(%ebx),%edx
41b42d:	8b c5                	mov    %ebp,%eax
41b42f:	8b ce                	mov    %esi,%ecx
41b431:	e8 ba 74 fe ff       	call   0x4028f0
41b436:	89 7b 0c             	mov    %edi,0xc(%ebx)
41b439:	8b c6                	mov    %esi,%eax
41b43b:	eb 02                	jmp    0x41b43f
41b43d:	33 c0                	xor    %eax,%eax
41b43f:	5d                   	pop    %ebp
41b440:	5f                   	pop    %edi
41b441:	5e                   	pop    %esi
41b442:	5b                   	pop    %ebx
41b443:	c3                   	ret
41b444:	55                   	push   %ebp
41b445:	8b ec                	mov    %esp,%ebp
41b447:	53                   	push   %ebx
41b448:	56                   	push   %esi
41b449:	57                   	push   %edi
41b44a:	84 d2                	test   %dl,%dl
41b44c:	74 08                	je     0x41b456
41b44e:	83 c4 f0             	add    $0xfffffff0,%esp
41b451:	e8 ce 81 fe ff       	call   0x403624
41b456:	8b f1                	mov    %ecx,%esi
41b458:	8b da                	mov    %edx,%ebx
41b45a:	8b f8                	mov    %eax,%edi
41b45c:	33 d2                	xor    %edx,%edx
41b45e:	8b c7                	mov    %edi,%eax
41b460:	e8 2b 7e fe ff       	call   0x403290
41b465:	8b 45 08             	mov    0x8(%ebp),%eax
41b468:	50                   	push   %eax
41b469:	8b 45 0c             	mov    0xc(%ebp),%eax
41b46c:	e8 9f 90 fe ff       	call   0x404510
41b471:	8b c8                	mov    %eax,%ecx
41b473:	8b d6                	mov    %esi,%edx
41b475:	8b c7                	mov    %edi,%eax
41b477:	e8 90 00 00 00       	call   0x41b50c
41b47c:	8b c7                	mov    %edi,%eax
41b47e:	84 db                	test   %bl,%bl
41b480:	74 0f                	je     0x41b491
41b482:	e8 f5 81 fe ff       	call   0x40367c
41b487:	64 8f 05 00 00 00 00 	pop    %fs:0x0
41b48e:	83 c4 0c             	add    $0xc,%esp
41b491:	8b c7                	mov    %edi,%eax
41b493:	5f                   	pop    %edi
41b494:	5e                   	pop    %esi
41b495:	5b                   	pop    %ebx
41b496:	5d                   	pop    %ebp
41b497:	c2 08 00             	ret    $0x8
41b49a:	8b c0                	mov    %eax,%eax
41b49c:	55                   	push   %ebp
41b49d:	8b ec                	mov    %esp,%ebp
41b49f:	83 c4 f4             	add    $0xfffffff4,%esp
41b4a2:	33 c0                	xor    %eax,%eax
41b4a4:	89 45 f4             	mov    %eax,-0xc(%ebp)
41b4a7:	33 c0                	xor    %eax,%eax
41b4a9:	55                   	push   %ebp
41b4aa:	68 ff b4 41 00       	push   $0x41b4ff
41b4af:	64 ff 30             	push   %fs:(%eax)
41b4b2:	64 89 20             	mov    %esp,%fs:(%eax)
41b4b5:	8b 45 08             	mov    0x8(%ebp),%eax
41b4b8:	8b 40 fc             	mov    -0x4(%eax),%eax
41b4bb:	89 45 f8             	mov    %eax,-0x8(%ebp)
41b4be:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
41b4c2:	8d 45 f8             	lea    -0x8(%ebp),%eax
41b4c5:	50                   	push   %eax
41b4c6:	6a 00                	push   $0x0
41b4c8:	8d 55 f4             	lea    -0xc(%ebp),%edx
41b4cb:	a1 a0 46 47 00       	mov    0x4746a0,%eax
41b4d0:	e8 0f a9 fe ff       	call   0x405de4
41b4d5:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41b4d8:	b2 01                	mov    $0x1,%dl
41b4da:	a1 54 5d 41 00       	mov    0x415d54,%eax
41b4df:	e8 4c 06 ff ff       	call   0x40bb30