4182d4:	8b 45 08             	mov    0x8(%ebp),%eax
4182d7:	8b 48 20             	mov    0x20(%eax),%ecx
4182da:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4182dd:	85 c9                	test   %ecx,%ecx
4182df:	74 2e                	je     0x41830f
4182e1:	f7 47 5c 00 08 00 00 	testl  $0x800,0x5c(%edi)
4182e8:	74 10                	je     0x4182fa
4182ea:	ff 75 fc             	push   -0x4(%ebp)
4182ed:	8b 4f 70             	mov    0x70(%edi),%ecx
4182f0:	e8 ff af 00 00       	call   0x4232f4
4182f5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4182f8:	eb 02                	jmp    0x4182fc
4182fa:	8a c3                	mov    %bl,%al
4182fc:	51                   	push   %ecx
4182fd:	0f b6 c0             	movzbl %al,%eax
418300:	50                   	push   %eax
418301:	e8 23 c2 fe ff       	call   0x404529
418306:	59                   	pop    %ecx
418307:	59                   	pop    %ecx
418308:	84 c0                	test   %al,%al
41830a:	75 25                	jne    0x418331
41830c:	8b 45 08             	mov    0x8(%ebp),%eax
41830f:	8b 40 18             	mov    0x18(%eax),%eax
418312:	89 45 f8             	mov    %eax,-0x8(%ebp)
418315:	85 c0                	test   %eax,%eax
418317:	74 1d                	je     0x418336
418319:	0f b6 d3             	movzbl %bl,%edx
41831c:	33 c0                	xor    %eax,%eax
41831e:	8b ca                	mov    %edx,%ecx
418320:	40                   	inc    %eax
418321:	83 e1 07             	and    $0x7,%ecx
418324:	c1 ea 03             	shr    $0x3,%edx
418327:	d3 e0                	shl    %cl,%eax
418329:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41832c:	84 04 0a             	test   %al,(%edx,%ecx,1)
41832f:	74 05                	je     0x418336
418331:	33 c9                	xor    %ecx,%ecx
418333:	41                   	inc    %ecx
418334:	eb 02                	jmp    0x418338
418336:	33 c9                	xor    %ecx,%ecx
418338:	8b 45 08             	mov    0x8(%ebp),%eax
41833b:	8b 40 08             	mov    0x8(%eax),%eax
41833e:	83 e0 01             	and    $0x1,%eax
418341:	3b c8                	cmp    %eax,%ecx
418343:	75 04                	jne    0x418349
418345:	32 c0                	xor    %al,%al
418347:	eb 04                	jmp    0x41834d
418349:	89 37                	mov    %esi,(%edi)
41834b:	b0 01                	mov    $0x1,%al
41834d:	5f                   	pop    %edi
41834e:	5e                   	pop    %esi
41834f:	5b                   	pop    %ebx
418350:	c9                   	leave
418351:	c2 04 00             	ret    $0x4
418354:	55                   	push   %ebp
418355:	8b ec                	mov    %esp,%ebp
418357:	83 ec 0c             	sub    $0xc,%esp
41835a:	53                   	push   %ebx
41835b:	56                   	push   %esi
41835c:	57                   	push   %edi
41835d:	8b f9                	mov    %ecx,%edi
41835f:	b9 00 01 00 00       	mov    $0x100,%ecx
418364:	89 7d f8             	mov    %edi,-0x8(%ebp)
418367:	8b 07                	mov    (%edi),%eax
418369:	0f b7 18             	movzwl (%eax),%ebx
41836c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41836f:	85 4f 5c             	test   %ecx,0x5c(%edi)
418372:	74 14                	je     0x418388
418374:	8b 47 70             	mov    0x70(%edi),%eax
418377:	53                   	push   %ebx
418378:	8b 48 04             	mov    0x4(%eax),%ecx
41837b:	8b 01                	mov    (%ecx),%eax
41837d:	ff 50 20             	call   *0x20(%eax)
418380:	0f b7 d8             	movzwl %ax,%ebx
418383:	8b 07                	mov    (%edi),%eax
418385:	89 5d fc             	mov    %ebx,-0x4(%ebp)
418388:	8d 70 02             	lea    0x2(%eax),%esi
41838b:	8b 45 08             	mov    0x8(%ebp),%eax
41838e:	8b 48 14             	mov    0x14(%eax),%ecx
418391:	85 c9                	test   %ecx,%ecx
418393:	74 22                	je     0x4183b7
418395:	51                   	push   %ecx
418396:	ff 77 50             	push   0x50(%edi)
418399:	8d 45 f4             	lea    -0xc(%ebp),%eax
41839c:	ff 37                	push   (%edi)
41839e:	50                   	push   %eax
41839f:	e8 f3 bf fe ff       	call   0x404397
4183a4:	8b 0f                	mov    (%edi),%ecx
4183a6:	83 c4 10             	add    $0x10,%esp
4183a9:	39 08                	cmp    %ecx,(%eax)
4183ab:	74 07                	je     0x4183b4
4183ad:	8b 30                	mov    (%eax),%esi
4183af:	e9 d1 00 00 00       	jmp    0x418485
4183b4:	8b 45 08             	mov    0x8(%ebp),%eax
4183b7:	8b 48 20             	mov    0x20(%eax),%ecx
4183ba:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4183bd:	85 c9                	test   %ecx,%ecx
4183bf:	74 34                	je     0x4183f5
4183c1:	f7 47 5c 00 08 00 00 	testl  $0x800,0x5c(%edi)
4183c8:	74 11                	je     0x4183db
4183ca:	8b 4f 70             	mov    0x70(%edi),%ecx
4183cd:	53                   	push   %ebx
4183ce:	e8 72 af 00 00       	call   0x423345
4183d3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4183d6:	0f b7 c0             	movzwl %ax,%eax
4183d9:	eb 03                	jmp    0x4183de
4183db:	0f b7 c3             	movzwl %bx,%eax
4183de:	51                   	push   %ecx
4183df:	0f b7 c0             	movzwl %ax,%eax
4183e2:	50                   	push   %eax
4183e3:	e8 77 c1 fe ff       	call   0x40455f
4183e8:	59                   	pop    %ecx
4183e9:	59                   	pop    %ecx
4183ea:	84 c0                	test   %al,%al
4183ec:	0f 85 93 00 00 00    	jne    0x418485
4183f2:	8b 45 08             	mov    0x8(%ebp),%eax
4183f5:	b9 00 01 00 00       	mov    $0x100,%ecx
4183fa:	66 3b d9             	cmp    %cx,%bx
4183fd:	73 20                	jae    0x41841f
4183ff:	8b 78 18             	mov    0x18(%eax),%edi
418402:	85 ff                	test   %edi,%edi
418404:	74 15                	je     0x41841b
418406:	0f b7 d3             	movzwl %bx,%edx
418409:	33 c0                	xor    %eax,%eax
41840b:	8b ca                	mov    %edx,%ecx
41840d:	40                   	inc    %eax
41840e:	83 e1 07             	and    $0x7,%ecx
418411:	c1 ea 03             	shr    $0x3,%edx
418414:	d3 e0                	shl    %cl,%eax
418416:	84 04 3a             	test   %al,(%edx,%edi,1)
418419:	75 6a                	jne    0x418485
41841b:	33 db                	xor    %ebx,%ebx
41841d:	eb 69                	jmp    0x418488
41841f:	8b 50 1c             	mov    0x1c(%eax),%edx
418422:	33 db                	xor    %ebx,%ebx
418424:	85 d2                	test   %edx,%edx
418426:	74 27                	je     0x41844f
418428:	8b 4a 08             	mov    0x8(%edx),%ecx
41842b:	8b 42 04             	mov    0x4(%edx),%eax
41842e:	88 5d f4             	mov    %bl,-0xc(%ebp)
418431:	ff 75 f4             	push   -0xc(%ebp)
418434:	8d 3c 41             	lea    (%ecx,%eax,2),%edi
418437:	8d 45 fc             	lea    -0x4(%ebp),%eax
41843a:	50                   	push   %eax
41843b:	57                   	push   %edi
41843c:	51                   	push   %ecx
41843d:	e8 29 b7 fe ff       	call   0x403b6b
418442:	83 c4 10             	add    $0x10,%esp
418445:	3b c7                	cmp    %edi,%eax
418447:	75 3c                	jne    0x418485
418449:	8b 7d f8             	mov    -0x8(%ebp),%edi
41844c:	8b 45 08             	mov    0x8(%ebp),%eax
41844f:	0f b7 48 24          	movzwl 0x24(%eax),%ecx
418453:	66 85 c9             	test   %cx,%cx
418456:	74 13                	je     0x41846b
418458:	51                   	push   %ecx
418459:	ff 75 fc             	push   -0x4(%ebp)
41845c:	8b 4f 70             	mov    0x70(%edi),%ecx
41845f:	e8 07 9c 00 00       	call   0x42206b
418464:	84 c0                	test   %al,%al
418466:	75 1d                	jne    0x418485
418468:	8b 45 08             	mov    0x8(%ebp),%eax
41846b:	39 58 28             	cmp    %ebx,0x28(%eax)
41846e:	74 18                	je     0x418488
418470:	ff 77 70             	push   0x70(%edi)
418473:	ff 70 28             	push   0x28(%eax)
418476:	ff 75 fc             	push   -0x4(%ebp)
418479:	e8 83 bf fe ff       	call   0x404401
41847e:	83 c4 0c             	add    $0xc,%esp
418481:	84 c0                	test   %al,%al
418483:	74 03                	je     0x418488
418485:	33 db                	xor    %ebx,%ebx
418487:	43                   	inc    %ebx
418488:	8b 45 08             	mov    0x8(%ebp),%eax
41848b:	8b 40 08             	mov    0x8(%eax),%eax
41848e:	83 e0 01             	and    $0x1,%eax
418491:	3b d8                	cmp    %eax,%ebx
418493:	75 04                	jne    0x418499
418495:	32 c0                	xor    %al,%al
418497:	eb 07                	jmp    0x4184a0
418499:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41849c:	b0 01                	mov    $0x1,%al
41849e:	89 31                	mov    %esi,(%ecx)
4184a0:	5f                   	pop    %edi
4184a1:	5e                   	pop    %esi
4184a2:	5b                   	pop    %ebx
4184a3:	c9                   	leave
4184a4:	c2 04 00             	ret    $0x4
4184a7:	55                   	push   %ebp
4184a8:	8b ec                	mov    %esp,%ebp
4184aa:	56                   	push   %esi
4184ab:	8b 75 0c             	mov    0xc(%ebp),%esi
4184ae:	57                   	push   %edi
4184af:	8b f9                	mov    %ecx,%edi
4184b1:	83 67 44 00          	andl   $0x0,0x44(%edi)
4184b5:	85 f6                	test   %esi,%esi
4184b7:	74 2d                	je     0x4184e6
4184b9:	ff 75 08             	push   0x8(%ebp)
4184bc:	0f b6 47 48          	movzbl 0x48(%edi),%eax
4184c0:	8b 4f 3c             	mov    0x3c(%edi),%ecx
4184c3:	50                   	push   %eax
4184c4:	e8 b4 af 00 00       	call   0x42347d
4184c9:	83 f8 ff             	cmp    $0xffffffff,%eax
4184cc:	74 18                	je     0x4184e6
4184ce:	8b 4f 44             	mov    0x44(%edi),%ecx
4184d1:	0f af 4d 08          	imul   0x8(%ebp),%ecx
4184d5:	03 c8                	add    %eax,%ecx
4184d7:	89 4f 44             	mov    %ecx,0x44(%edi)
4184da:	8b cf                	mov    %edi,%ecx
4184dc:	e8 f3 3e 00 00       	call   0x41c3d4
4184e1:	83 ee 01             	sub    $0x1,%esi
4184e4:	75 d3                	jne    0x4184b9
4184e6:	5f                   	pop    %edi
4184e7:	8b c6                	mov    %esi,%eax
4184e9:	5e                   	pop    %esi
4184ea:	5d                   	pop    %ebp
4184eb:	c2 08 00             	ret    $0x8
4184ee:	55                   	push   %ebp
4184ef:	8b ec                	mov    %esp,%ebp
4184f1:	56                   	push   %esi
4184f2:	8b 75 0c             	mov    0xc(%ebp),%esi
4184f5:	57                   	push   %edi
4184f6:	8b f9                	mov    %ecx,%edi
4184f8:	83 67 44 00          	andl   $0x0,0x44(%edi)
4184fc:	85 f6                	test   %esi,%esi
4184fe:	74 2d                	je     0x41852d
418500:	ff 75 08             	push   0x8(%ebp)
418503:	0f b7 47 48          	movzwl 0x48(%edi),%eax
418507:	8b 4f 3c             	mov    0x3c(%edi),%ecx
41850a:	50                   	push   %eax
41850b:	e8 bd af 00 00       	call   0x4234cd
418510:	83 f8 ff             	cmp    $0xffffffff,%eax
418513:	74 18                	je     0x41852d
418515:	8b 4f 44             	mov    0x44(%edi),%ecx
418518:	0f af 4d 08          	imul   0x8(%ebp),%ecx
41851c:	03 c8                	add    %eax,%ecx
41851e:	89 4f 44             	mov    %ecx,0x44(%edi)
418521:	8b cf                	mov    %edi,%ecx
418523:	e8 da 3e 00 00       	call   0x41c402
418528:	83 ee 01             	sub    $0x1,%esi
41852b:	75 d3                	jne    0x418500
41852d:	5f                   	pop    %edi
41852e:	8b c6                	mov    %esi,%eax
418530:	5e                   	pop    %esi
418531:	5d                   	pop    %ebp
418532:	c2 08 00             	ret    $0x8
418535:	55                   	push   %ebp
418536:	8b ec                	mov    %esp,%ebp
418538:	51                   	push   %ecx
418539:	53                   	push   %ebx
41853a:	8b 5d 08             	mov    0x8(%ebp),%ebx
41853d:	33 c0                	xor    %eax,%eax
41853f:	56                   	push   %esi
418540:	57                   	push   %edi
418541:	8b f1                	mov    %ecx,%esi
418543:	83 fb 2e             	cmp    $0x2e,%ebx
418546:	6a 0e                	push   $0xe
418548:	59                   	pop    %ecx
418549:	0f 44 c8             	cmove  %eax,%ecx
41854c:	83 fb 3d             	cmp    $0x3d,%ebx
41854f:	8b 3e                	mov    (%esi),%edi
418551:	0f 44 c8             	cmove  %eax,%ecx
418554:	40                   	inc    %eax
418555:	83 fb 3a             	cmp    $0x3a,%ebx
418558:	0f 44 c8             	cmove  %eax,%ecx
41855b:	8b 46 4c             	mov    0x4c(%esi),%eax
41855e:	33 d2                	xor    %edx,%edx
418560:	89 4d fc             	mov    %ecx,-0x4(%ebp)
418563:	89 55 08             	mov    %edx,0x8(%ebp)
418566:	83 f8 3a             	cmp    $0x3a,%eax
418569:	74 2e                	je     0x418599
41856b:	8b c8                	mov    %eax,%ecx
41856d:	8b c1                	mov    %ecx,%eax
41856f:	83 f9 3d             	cmp    $0x3d,%ecx
418572:	74 22                	je     0x418596
418574:	83 f9 2e             	cmp    $0x2e,%ecx
418577:	74 1d                	je     0x418596
418579:	83 f9 ff             	cmp    $0xffffffff,%ecx
41857c:	74 18                	je     0x418596
41857e:	8b ce                	mov    %esi,%ecx
418580:	e8 4f 3e 00 00       	call   0x41c3d4
418585:	8b 55 08             	mov    0x8(%ebp),%edx
418588:	8b 46 4c             	mov    0x4c(%esi),%eax
41858b:	42                   	inc    %edx
41858c:	89 55 08             	mov    %edx,0x8(%ebp)
41858f:	8b c8                	mov    %eax,%ecx
418591:	83 f8 3a             	cmp    $0x3a,%eax
418594:	75 d7                	jne    0x41856d
418596:	8b 4d fc             	mov    -0x4(%ebp),%ecx
418599:	3b c3                	cmp    %ebx,%eax
41859b:	0f 85 86 00 00 00    	jne    0x418627
4185a1:	83 fb 3a             	cmp    $0x3a,%ebx
4185a4:	75 30                	jne    0x4185d6
4185a6:	8b 46 40             	mov    0x40(%esi),%eax
4185a9:	8b 4e 3c             	mov    0x3c(%esi),%ecx
4185ac:	c1 e8 08             	shr    $0x8,%eax
4185af:	24 01                	and    $0x1,%al
4185b1:	50                   	push   %eax
4185b2:	ff 36                	push   (%esi)
4185b4:	57                   	push   %edi
4185b5:	e8 6b f8 fe ff       	call   0x407e25
4185ba:	0f b7 c0             	movzwl %ax,%eax
4185bd:	66 85 c0             	test   %ax,%ax
4185c0:	75 04                	jne    0x4185c6
4185c2:	6a 01                	push   $0x1
4185c4:	eb 62                	jmp    0x418628
4185c6:	6a 00                	push   $0x0
4185c8:	8d 4e 24             	lea    0x24(%esi),%ecx
4185cb:	50                   	push   %eax
4185cc:	ff 71 04             	push   0x4(%ecx)
4185cf:	e8 92 cf ff ff       	call   0x415566
4185d4:	eb 37                	jmp    0x41860d
4185d6:	83 fb 3d             	cmp    $0x3d,%ebx
4185d9:	75 12                	jne    0x4185ed
4185db:	3b 3e                	cmp    (%esi),%edi
4185dd:	74 17                	je     0x4185f6
4185df:	52                   	push   %edx
4185e0:	ff 36                	push   (%esi)
4185e2:	8d 4e 24             	lea    0x24(%esi),%ecx
4185e5:	57                   	push   %edi
4185e6:	e8 81 d0 ff ff       	call   0x41566c
4185eb:	eb 20                	jmp    0x41860d
4185ed:	83 fb 2e             	cmp    $0x2e,%ebx
4185f0:	75 1b                	jne    0x41860d
4185f2:	3b 3e                	cmp    (%esi),%edi
4185f4:	75 04                	jne    0x4185fa
4185f6:	6a 00                	push   $0x0
4185f8:	eb 2e                	jmp    0x418628
4185fa:	8d 4e 24             	lea    0x24(%esi),%ecx
4185fd:	8b 41 04             	mov    0x4(%ecx),%eax
418600:	83 c0 14             	add    $0x14,%eax
418603:	50                   	push   %eax
418604:	52                   	push   %edx
418605:	ff 36                	push   (%esi)
418607:	57                   	push   %edi
418608:	e8 19 ec ff ff       	call   0x417226
41860d:	8b ce                	mov    %esi,%ecx
41860f:	e8 c0 3d 00 00       	call   0x41c3d4
418614:	ff 75 fc             	push   -0x4(%ebp)
418617:	8b ce                	mov    %esi,%ecx
418619:	6a 5d                	push   $0x5d
41861b:	e8 8b 10 00 00       	call   0x4196ab
418620:	5f                   	pop    %edi
418621:	5e                   	pop    %esi
418622:	5b                   	pop    %ebx
418623:	c9                   	leave
418624:	c2 04 00             	ret    $0x4
418627:	51                   	push   %ecx
418628:	8b ce                	mov    %esi,%ecx
41862a:	e8 0d 10 00 00       	call   0x41963c