4172e5:	74 10                	je     0x4172f7
4172e7:	89 18                	mov    %ebx,(%eax)
4172e9:	89 48 04             	mov    %ecx,0x4(%eax)
4172ec:	89 48 08             	mov    %ecx,0x8(%eax)
4172ef:	89 48 0c             	mov    %ecx,0xc(%eax)
4172f2:	88 4d fc             	mov    %cl,-0x4(%ebp)
4172f5:	eb 02                	jmp    0x4172f9
4172f7:	8b c1                	mov    %ecx,%eax
4172f9:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4172fd:	89 07                	mov    %eax,(%edi)
4172ff:	89 70 10             	mov    %esi,0x10(%eax)
417302:	8b 37                	mov    (%edi),%esi
417304:	ff 75 0c             	push   0xc(%ebp)
417307:	8d 4e 04             	lea    0x4(%esi),%ecx
41730a:	ff 75 08             	push   0x8(%ebp)
41730d:	e8 89 cd fe ff       	call   0x40409b
417312:	e8 fc 86 02 00       	call   0x43fa13
417317:	c2 10 00             	ret    $0x10
41731a:	56                   	push   %esi
41731b:	8b f1                	mov    %ecx,%esi
41731d:	57                   	push   %edi
41731e:	8d 4e 24             	lea    0x24(%esi),%ecx
417321:	e8 c4 e1 ff ff       	call   0x4154ea
417326:	83 7e 4c 5e          	cmpl   $0x5e,0x4c(%esi)
41732a:	75 0e                	jne    0x41733a
41732c:	8b 46 28             	mov    0x28(%esi),%eax
41732f:	8b ce                	mov    %esi,%ecx
417331:	83 70 08 01          	xorl   $0x1,0x8(%eax)
417335:	e8 9a 50 00 00       	call   0x41c3d4
41733a:	f7 46 50 00 00 00 20 	testl  $0x20000000,0x50(%esi)
417341:	74 17                	je     0x41735a
417343:	83 7e 4c 5d          	cmpl   $0x5d,0x4c(%esi)
417347:	75 11                	jne    0x41735a
417349:	6a 5d                	push   $0x5d
41734b:	8d 4e 24             	lea    0x24(%esi),%ecx
41734e:	e8 7a e0 ff ff       	call   0x4153cd
417353:	8b ce                	mov    %esi,%ecx
417355:	e8 7a 50 00 00       	call   0x41c3d4
41735a:	5f                   	pop    %edi
41735b:	8b ce                	mov    %esi,%ecx
41735d:	5e                   	pop    %esi
41735e:	e9 b0 05 00 00       	jmp    0x417913
417363:	56                   	push   %esi
417364:	8b f1                	mov    %ecx,%esi
417366:	57                   	push   %edi
417367:	8d 4e 24             	lea    0x24(%esi),%ecx
41736a:	e8 b9 e1 ff ff       	call   0x415528
41736f:	83 7e 4c 5e          	cmpl   $0x5e,0x4c(%esi)
417373:	75 0e                	jne    0x417383
417375:	8b 46 28             	mov    0x28(%esi),%eax
417378:	8b ce                	mov    %esi,%ecx
41737a:	83 70 08 01          	xorl   $0x1,0x8(%eax)
41737e:	e8 7f 50 00 00       	call   0x41c402
417383:	f7 46 50 00 00 00 20 	testl  $0x20000000,0x50(%esi)
41738a:	74 17                	je     0x4173a3
41738c:	83 7e 4c 5d          	cmpl   $0x5d,0x4c(%esi)
417390:	75 11                	jne    0x4173a3
417392:	6a 5d                	push   $0x5d
417394:	8d 4e 24             	lea    0x24(%esi),%ecx
417397:	e8 b3 e0 ff ff       	call   0x41544f
41739c:	8b ce                	mov    %esi,%ecx
41739e:	e8 5f 50 00 00       	call   0x41c402
4173a3:	5f                   	pop    %edi
4173a4:	8b ce                	mov    %esi,%ecx
4173a6:	5e                   	pop    %esi
4173a7:	e9 4e 06 00 00       	jmp    0x4179fa
4173ac:	55                   	push   %ebp
4173ad:	8b ec                	mov    %esp,%ebp
4173af:	56                   	push   %esi
4173b0:	8b f1                	mov    %ecx,%esi
4173b2:	57                   	push   %edi
4173b3:	8b 0e                	mov    (%esi),%ecx
4173b5:	3b 4e 08             	cmp    0x8(%esi),%ecx
4173b8:	74 5b                	je     0x417415
4173ba:	8b 46 40             	mov    0x40(%esi),%eax
4173bd:	c1 e8 08             	shr    $0x8,%eax
4173c0:	24 01                	and    $0x1,%al
4173c2:	50                   	push   %eax
4173c3:	8d 41 01             	lea    0x1(%ecx),%eax
4173c6:	50                   	push   %eax
4173c7:	51                   	push   %ecx
4173c8:	8b 4e 3c             	mov    0x3c(%esi),%ecx
4173cb:	e8 55 0a ff ff       	call   0x407e25
4173d0:	0f b7 f8             	movzwl %ax,%edi
4173d3:	66 85 ff             	test   %di,%di
4173d6:	74 3d                	je     0x417415
4173d8:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
4173dc:	74 08                	je     0x4173e6
4173de:	8d 4e 24             	lea    0x24(%esi),%ecx
4173e1:	e8 04 e1 ff ff       	call   0x4154ea
4173e6:	8b 46 3c             	mov    0x3c(%esi),%eax
4173e9:	8d 4e 24             	lea    0x24(%esi),%ecx
4173ec:	0f b6 56 48          	movzbl 0x48(%esi),%edx
4173f0:	8b 40 04             	mov    0x4(%eax),%eax
4173f3:	8b 40 0c             	mov    0xc(%eax),%eax
4173f6:	8a 04 50             	mov    (%eax,%edx,2),%al
4173f9:	24 01                	and    $0x1,%al
4173fb:	88 45 08             	mov    %al,0x8(%ebp)
4173fe:	ff 75 08             	push   0x8(%ebp)
417401:	57                   	push   %edi
417402:	ff 71 04             	push   0x4(%ecx)
417405:	e8 5c e1 ff ff       	call   0x415566
41740a:	8b ce                	mov    %esi,%ecx
41740c:	e8 c3 4f 00 00       	call   0x41c3d4
417411:	b0 01                	mov    $0x1,%al
417413:	eb 02                	jmp    0x417417
417415:	32 c0                	xor    %al,%al
417417:	5f                   	pop    %edi
417418:	5e                   	pop    %esi
417419:	5d                   	pop    %ebp
41741a:	c2 04 00             	ret    $0x4
41741d:	55                   	push   %ebp
41741e:	8b ec                	mov    %esp,%ebp
417420:	51                   	push   %ecx
417421:	53                   	push   %ebx
417422:	8b d9                	mov    %ecx,%ebx
417424:	8b 0b                	mov    (%ebx),%ecx
417426:	3b 4b 08             	cmp    0x8(%ebx),%ecx
417429:	74 6e                	je     0x417499
41742b:	8b 43 40             	mov    0x40(%ebx),%eax
41742e:	c1 e8 08             	shr    $0x8,%eax
417431:	24 01                	and    $0x1,%al
417433:	50                   	push   %eax
417434:	8d 41 02             	lea    0x2(%ecx),%eax
417437:	50                   	push   %eax
417438:	51                   	push   %ecx
417439:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
41743c:	e8 53 0a ff ff       	call   0x407e94
417441:	0f b7 c0             	movzwl %ax,%eax
417444:	89 45 fc             	mov    %eax,-0x4(%ebp)
417447:	66 85 c0             	test   %ax,%ax
41744a:	74 4d                	je     0x417499
41744c:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
417450:	74 08                	je     0x41745a
417452:	8d 4b 24             	lea    0x24(%ebx),%ecx
417455:	e8 ce e0 ff ff       	call   0x415528
41745a:	8b 43 3c             	mov    0x3c(%ebx),%eax
41745d:	0f b7 53 48          	movzwl 0x48(%ebx),%edx
417461:	56                   	push   %esi
417462:	57                   	push   %edi
417463:	8b 48 04             	mov    0x4(%eax),%ecx
417466:	52                   	push   %edx
417467:	6a 01                	push   $0x1
417469:	8b 01                	mov    (%ecx),%eax
41746b:	8b 40 10             	mov    0x10(%eax),%eax
41746e:	ff d0                	call   *%eax
417470:	8b 73 28             	mov    0x28(%ebx),%esi
417473:	8d 4b 24             	lea    0x24(%ebx),%ecx
417476:	88 45 08             	mov    %al,0x8(%ebp)
417479:	ff 75 08             	push   0x8(%ebp)
41747c:	ff 75 fc             	push   -0x4(%ebp)
41747f:	56                   	push   %esi
417480:	e8 64 e1 ff ff       	call   0x4155e9
417485:	8b 45 fc             	mov    -0x4(%ebp),%eax
417488:	8b cb                	mov    %ebx,%ecx
41748a:	66 09 46 24          	or     %ax,0x24(%esi)
41748e:	e8 6f 4f 00 00       	call   0x41c402
417493:	5f                   	pop    %edi
417494:	b0 01                	mov    $0x1,%al
417496:	5e                   	pop    %esi
417497:	eb 02                	jmp    0x41749b
417499:	32 c0                	xor    %al,%al
41749b:	5b                   	pop    %ebx
41749c:	c9                   	leave
41749d:	c2 04 00             	ret    $0x4
4174a0:	56                   	push   %esi
4174a1:	8b f1                	mov    %ecx,%esi
4174a3:	83 7e 4c ff          	cmpl   $0xffffffff,0x4c(%esi)
4174a7:	0f 84 f7 00 00 00    	je     0x4175a4
4174ad:	f7 46 50 00 00 01 00 	testl  $0x10000,0x50(%esi)
4174b4:	74 0e                	je     0x4174c4
4174b6:	0f b6 46 48          	movzbl 0x48(%esi),%eax
4174ba:	50                   	push   %eax
4174bb:	e8 70 12 00 00       	call   0x418730
4174c0:	84 c0                	test   %al,%al
4174c2:	75 65                	jne    0x417529
4174c4:	f7 46 50 00 80 00 00 	testl  $0x8000,0x50(%esi)
4174cb:	74 10                	je     0x4174dd
4174cd:	0f b6 46 48          	movzbl 0x48(%esi),%eax
4174d1:	8b ce                	mov    %esi,%ecx
4174d3:	50                   	push   %eax
4174d4:	e8 00 13 00 00       	call   0x4187d9
4174d9:	84 c0                	test   %al,%al
4174db:	75 4c                	jne    0x417529
4174dd:	8a 46 48             	mov    0x48(%esi),%al
4174e0:	3c 63                	cmp    $0x63,%al
4174e2:	75 4e                	jne    0x417532
4174e4:	f7 46 50 00 00 04 00 	testl  $0x40000,0x50(%esi)
4174eb:	74 7c                	je     0x417569
4174ed:	57                   	push   %edi
4174ee:	8b ce                	mov    %esi,%ecx
4174f0:	e8 df 4e 00 00       	call   0x41c3d4
4174f5:	8b 46 3c             	mov    0x3c(%esi),%eax
4174f8:	bf 03 01 00 00       	mov    $0x103,%edi
4174fd:	8a 56 48             	mov    0x48(%esi),%dl
417500:	0f b6 ca             	movzbl %dl,%ecx
417503:	8b 40 04             	mov    0x4(%eax),%eax
417506:	8b 40 0c             	mov    0xc(%eax),%eax
417509:	66 85 3c 48          	test   %di,(%eax,%ecx,2)
41750d:	5f                   	pop    %edi
41750e:	0f 84 90 00 00 00    	je     0x4175a4
417514:	0f be c2             	movsbl %dl,%eax
417517:	25 1f 00 00 80       	and    $0x8000001f,%eax
41751c:	79 05                	jns    0x417523
41751e:	48                   	dec    %eax
41751f:	83 c8 e0             	or     $0xffffffe0,%eax
417522:	40                   	inc    %eax
417523:	0f be c0             	movsbl %al,%eax
417526:	89 46 44             	mov    %eax,0x44(%esi)
417529:	8b ce                	mov    %esi,%ecx
41752b:	e8 a4 4e 00 00       	call   0x41c3d4
417530:	eb 56                	jmp    0x417588
417532:	3c 78                	cmp    $0x78,%al
417534:	75 14                	jne    0x41754a
417536:	f7 46 50 00 10 00 00 	testl  $0x1000,0x50(%esi)
41753d:	74 2a                	je     0x417569
41753f:	8b ce                	mov    %esi,%ecx
417541:	e8 8e 4e 00 00       	call   0x41c3d4
417546:	6a 02                	push   $0x2
417548:	eb 16                	jmp    0x417560
41754a:	3c 75                	cmp    $0x75,%al
41754c:	75 1b                	jne    0x417569
41754e:	f7 46 50 00 08 00 00 	testl  $0x800,0x50(%esi)
417555:	74 12                	je     0x417569
417557:	8b ce                	mov    %esi,%ecx
417559:	e8 76 4e 00 00       	call   0x41c3d4
41755e:	6a 04                	push   $0x4
417560:	8b ce                	mov    %esi,%ecx
417562:	e8 de 37 00 00       	call   0x41ad45
417567:	eb 1f                	jmp    0x417588
417569:	f7 46 50 00 20 00 00 	testl  $0x2000,0x50(%esi)
417570:	74 2a                	je     0x41759c
417572:	6a 03                	push   $0x3
417574:	6a 08                	push   $0x8
417576:	8b ce                	mov    %esi,%ecx
417578:	e8 2a 0f 00 00       	call   0x4184a7
41757d:	83 f8 03             	cmp    $0x3,%eax
417580:	74 1a                	je     0x41759c
417582:	83 7e 44 00          	cmpl   $0x0,0x44(%esi)
417586:	74 1c                	je     0x4175a4
417588:	81 7e 44 ff 00 00 00 	cmpl   $0xff,0x44(%esi)
41758f:	77 13                	ja     0x4175a4
417591:	0f be 46 44          	movsbl 0x44(%esi),%eax
417595:	89 46 44             	mov    %eax,0x44(%esi)
417598:	b0 01                	mov    $0x1,%al
41759a:	5e                   	pop    %esi
41759b:	c3                   	ret
41759c:	8b ce                	mov    %esi,%ecx
41759e:	5e                   	pop    %esi
41759f:	e9 e7 37 00 00       	jmp    0x41ad8b
4175a4:	6a 02                	push   $0x2
4175a6:	8b ce                	mov    %esi,%ecx
4175a8:	e8 8f 20 00 00       	call   0x41963c
4175ad:	cc                   	int3
4175ae:	56                   	push   %esi
4175af:	8b f1                	mov    %ecx,%esi
4175b1:	83 7e 4c ff          	cmpl   $0xffffffff,0x4c(%esi)
4175b5:	0f 84 ef 00 00 00    	je     0x4176aa
4175bb:	f7 46 50 00 00 01 00 	testl  $0x10000,0x50(%esi)
4175c2:	74 0e                	je     0x4175d2
4175c4:	0f b7 46 48          	movzwl 0x48(%esi),%eax
4175c8:	50                   	push   %eax
4175c9:	e8 b1 11 00 00       	call   0x41877f
4175ce:	84 c0                	test   %al,%al
4175d0:	75 5b                	jne    0x41762d
4175d2:	f7 46 50 00 80 00 00 	testl  $0x8000,0x50(%esi)
4175d9:	74 10                	je     0x4175eb
4175db:	0f b7 46 48          	movzwl 0x48(%esi),%eax
4175df:	8b ce                	mov    %esi,%ecx
4175e1:	50                   	push   %eax
4175e2:	e8 14 12 00 00       	call   0x4187fb
4175e7:	84 c0                	test   %al,%al
4175e9:	75 42                	jne    0x41762d
4175eb:	0f b7 46 48          	movzwl 0x48(%esi),%eax
4175ef:	83 f8 63             	cmp    $0x63,%eax
4175f2:	75 42                	jne    0x417636
4175f4:	f7 46 50 00 00 04 00 	testl  $0x40000,0x50(%esi)
4175fb:	74 72                	je     0x41766f
4175fd:	8b ce                	mov    %esi,%ecx
4175ff:	e8 fe 4d 00 00       	call   0x41c402
417604:	8b 46 3c             	mov    0x3c(%esi),%eax
417607:	0f b7 56 48          	movzwl 0x48(%esi),%edx
41760b:	52                   	push   %edx
41760c:	68 03 01 00 00       	push   $0x103
417611:	8b 48 04             	mov    0x4(%eax),%ecx
417614:	8b 01                	mov    (%ecx),%eax
417616:	8b 40 10             	mov    0x10(%eax),%eax
417619:	ff d0                	call   *%eax
41761b:	84 c0                	test   %al,%al
41761d:	0f 84 87 00 00 00    	je     0x4176aa
417623:	0f b7 46 48          	movzwl 0x48(%esi),%eax
417627:	83 e0 1f             	and    $0x1f,%eax
41762a:	89 46 44             	mov    %eax,0x44(%esi)
41762d:	8b ce                	mov    %esi,%ecx
41762f:	e8 ce 4d 00 00       	call   0x41c402
417634:	eb 58                	jmp    0x41768e
417636:	83 f8 78             	cmp    $0x78,%eax
417639:	75 14                	jne    0x41764f
41763b:	f7 46 50 00 10 00 00 	testl  $0x1000,0x50(%esi)
417642:	74 2b                	je     0x41766f
417644:	8b ce                	mov    %esi,%ecx
417646:	e8 b7 4d 00 00       	call   0x41c402
41764b:	6a 02                	push   $0x2
41764d:	eb 17                	jmp    0x417666
41764f:	83 f8 75             	cmp    $0x75,%eax
417652:	75 1b                	jne    0x41766f
417654:	f7 46 50 00 08 00 00 	testl  $0x800,0x50(%esi)
41765b:	74 12                	je     0x41766f
41765d:	8b ce                	mov    %esi,%ecx
41765f:	e8 9e 4d 00 00       	call   0x41c402
417664:	6a 04                	push   $0x4
417666:	8b ce                	mov    %esi,%ecx
417668:	e8 fb 36 00 00       	call   0x41ad68
41766d:	eb 1f                	jmp    0x41768e
41766f:	f7 46 50 00 20 00 00 	testl  $0x2000,0x50(%esi)
417676:	74 2a                	je     0x4176a2
417678:	6a 03                	push   $0x3
41767a:	6a 08                	push   $0x8
41767c:	8b ce                	mov    %esi,%ecx
41767e:	e8 6b 0e 00 00       	call   0x4184ee
417683:	83 f8 03             	cmp    $0x3,%eax
417686:	74 1a                	je     0x4176a2
417688:	83 7e 44 00          	cmpl   $0x0,0x44(%esi)
41768c:	74 1c                	je     0x4176aa
41768e:	81 7e 44 ff ff 00 00 	cmpl   $0xffff,0x44(%esi)
417695:	77 13                	ja     0x4176aa
417697:	0f b7 46 44          	movzwl 0x44(%esi),%eax
41769b:	89 46 44             	mov    %eax,0x44(%esi)
41769e:	b0 01                	mov    $0x1,%al
4176a0:	5e                   	pop    %esi
4176a1:	c3                   	ret
4176a2:	8b ce                	mov    %esi,%ecx
4176a4:	5e                   	pop    %esi
4176a5:	e9 03 37 00 00       	jmp    0x41adad
4176aa:	6a 02                	push   $0x2
4176ac:	8b ce                	mov    %esi,%ecx
4176ae:	e8 95 1f 00 00       	call   0x419648
4176b3:	cc                   	int3
4176b4:	56                   	push   %esi
4176b5:	57                   	push   %edi
4176b6:	8b f1                	mov    %ecx,%esi
4176b8:	6a 5c                	push   $0x5c
4176ba:	5f                   	pop    %edi
4176bb:	8b 46 4c             	mov    0x4c(%esi),%eax
4176be:	3b c7                	cmp    %edi,%eax
4176c0:	75 5f                	jne    0x417721
4176c2:	e8 0d 4d 00 00       	call   0x41c3d4
4176c7:	f7 46 50 00 00 20 00 	testl  $0x200000,0x50(%esi)
4176ce:	74 0e                	je     0x4176de
4176d0:	6a 00                	push   $0x0