403445:	0f b7 0f             	movzwl (%edi),%ecx
403448:	51                   	push   %ecx
403449:	83 c7 02             	add    $0x2,%edi
40344c:	f2 66 af             	repnz scas %es:(%edi),%ax
40344f:	74 0a                	je     0x40345b
403451:	59                   	pop    %ecx
403452:	8b 76 dc             	mov    -0x24(%esi),%esi
403455:	85 f6                	test   %esi,%esi
403457:	75 e3                	jne    0x40343c
403459:	5f                   	pop    %edi
40345a:	c3                   	ret
40345b:	58                   	pop    %eax
40345c:	01 c0                	add    %eax,%eax
40345e:	29 c8                	sub    %ecx,%eax
403460:	8b 74 47 fc          	mov    -0x4(%edi,%eax,2),%esi
403464:	5f                   	pop    %edi
403465:	c3                   	ret
403466:	8b c0                	mov    %eax,%eax
403468:	50                   	push   %eax
403469:	51                   	push   %ecx
40346a:	8b 00                	mov    (%eax),%eax
40346c:	e8 c7 ff ff ff       	call   0x403438
403471:	59                   	pop    %ecx
403472:	58                   	pop    %eax
403473:	74 02                	je     0x403477
403475:	ff e6                	jmp    *%esi
403477:	59                   	pop    %ecx
403478:	e9 33 f6 ff ff       	jmp    0x402ab0
40347d:	c3                   	ret
40347e:	8b c0                	mov    %eax,%eax
403480:	56                   	push   %esi
403481:	89 d6                	mov    %edx,%esi
403483:	8b 00                	mov    (%eax),%eax
403485:	e8 ae ff ff ff       	call   0x403438
40348a:	89 f0                	mov    %esi,%eax
40348c:	5e                   	pop    %esi
40348d:	75 06                	jne    0x403495
40348f:	59                   	pop    %ecx
403490:	e9 1b f6 ff ff       	jmp    0x402ab0
403495:	c3                   	ret
403496:	8b c0                	mov    %eax,%eax
403498:	eb 02                	jmp    0x40349c
40349a:	8b 00                	mov    (%eax),%eax
40349c:	39 d0                	cmp    %edx,%eax
40349e:	74 08                	je     0x4034a8
4034a0:	8b 40 dc             	mov    -0x24(%eax),%eax
4034a3:	85 c0                	test   %eax,%eax
4034a5:	75 f3                	jne    0x40349a
4034a7:	c3                   	ret
4034a8:	b0 01                	mov    $0x1,%al
4034aa:	c3                   	ret
4034ab:	90                   	nop
4034ac:	83 c0 c4             	add    $0xffffffc4,%eax
4034af:	8b 00                	mov    (%eax),%eax
4034b1:	c3                   	ret
4034b2:	8b c0                	mov    %eax,%eax
4034b4:	b8 ff ff 00 80       	mov    $0x8000ffff,%eax
4034b9:	c3                   	ret
4034ba:	8b c0                	mov    %eax,%eax
4034bc:	c3                   	ret
4034bd:	8d 40 00             	lea    0x0(%eax),%eax
4034c0:	c3                   	ret
4034c1:	8d 40 00             	lea    0x0(%eax),%eax
4034c4:	c3                   	ret
4034c5:	8d 40 00             	lea    0x0(%eax),%eax
4034c8:	56                   	push   %esi
4034c9:	66 8b 32             	mov    (%edx),%si
4034cc:	66 09 f6             	or     %si,%si
4034cf:	74 17                	je     0x4034e8
4034d1:	66 81 fe 00 c0       	cmp    $0xc000,%si
4034d6:	73 10                	jae    0x4034e8
4034d8:	50                   	push   %eax
4034d9:	8b 00                	mov    (%eax),%eax
4034db:	e8 58 ff ff ff       	call   0x403438
4034e0:	58                   	pop    %eax
4034e1:	74 05                	je     0x4034e8
4034e3:	89 f1                	mov    %esi,%ecx
4034e5:	5e                   	pop    %esi
4034e6:	ff e1                	jmp    *%ecx
4034e8:	5e                   	pop    %esi
4034e9:	8b 08                	mov    (%eax),%ecx
4034eb:	ff 61 f0             	jmp    *-0x10(%ecx)
4034ee:	c3                   	ret
4034ef:	90                   	nop
4034f0:	53                   	push   %ebx
4034f1:	56                   	push   %esi
4034f2:	57                   	push   %edi
4034f3:	31 c9                	xor    %ecx,%ecx
4034f5:	31 ff                	xor    %edi,%edi
4034f7:	8a 1a                	mov    (%edx),%bl
4034f9:	eb 02                	jmp    0x4034fd
4034fb:	8b 00                	mov    (%eax),%eax
4034fd:	8b 70 cc             	mov    -0x34(%eax),%esi
403500:	85 f6                	test   %esi,%esi
403502:	74 15                	je     0x403519
403504:	66 8b 3e             	mov    (%esi),%di
403507:	83 c6 02             	add    $0x2,%esi
40350a:	8a 4e 06             	mov    0x6(%esi),%cl
40350d:	38 d9                	cmp    %bl,%cl
40350f:	74 15                	je     0x403526
403511:	66 8b 0e             	mov    (%esi),%cx
403514:	01 ce                	add    %ecx,%esi
403516:	4f                   	dec    %edi
403517:	75 f1                	jne    0x40350a
403519:	8b 40 dc             	mov    -0x24(%eax),%eax
40351c:	85 c0                	test   %eax,%eax
40351e:	75 db                	jne    0x4034fb
403520:	eb 18                	jmp    0x40353a
403522:	8a 1a                	mov    (%edx),%bl
403524:	eb eb                	jmp    0x403511
403526:	b5 00                	mov    $0x0,%ch
403528:	8a 5c 31 06          	mov    0x6(%ecx,%esi,1),%bl
40352c:	32 1c 11             	xor    (%ecx,%edx,1),%bl
40352f:	80 e3 df             	and    $0xdf,%bl
403532:	75 ee                	jne    0x403522
403534:	49                   	dec    %ecx
403535:	75 f1                	jne    0x403528
403537:	8b 46 02             	mov    0x2(%esi),%eax
40353a:	5f                   	pop    %edi
40353b:	5e                   	pop    %esi
40353c:	5b                   	pop    %ebx
40353d:	c3                   	ret
40353e:	8b c0                	mov    %eax,%eax
403540:	53                   	push   %ebx
403541:	56                   	push   %esi
403542:	57                   	push   %edi
403543:	31 c9                	xor    %ecx,%ecx
403545:	31 ff                	xor    %edi,%edi
403547:	8a 1a                	mov    (%edx),%bl
403549:	50                   	push   %eax
40354a:	8b 00                	mov    (%eax),%eax
40354c:	8b 70 c8             	mov    -0x38(%eax),%esi
40354f:	85 f6                	test   %esi,%esi
403551:	74 14                	je     0x403567
403553:	66 8b 3e             	mov    (%esi),%di
403556:	83 c6 06             	add    $0x6,%esi
403559:	8a 4e 06             	mov    0x6(%esi),%cl
40355c:	38 d9                	cmp    %bl,%cl
40355e:	74 18                	je     0x403578
403560:	8d 74 31 07          	lea    0x7(%ecx,%esi,1),%esi
403564:	4f                   	dec    %edi
403565:	75 f2                	jne    0x403559
403567:	8b 40 dc             	mov    -0x24(%eax),%eax
40356a:	85 c0                	test   %eax,%eax
40356c:	75 dc                	jne    0x40354a
40356e:	5a                   	pop    %edx
40356f:	eb 1b                	jmp    0x40358c
403571:	8a 1a                	mov    (%edx),%bl
403573:	8a 4e 06             	mov    0x6(%esi),%cl
403576:	eb e8                	jmp    0x403560
403578:	8a 5c 31 06          	mov    0x6(%ecx,%esi,1),%bl
40357c:	32 1c 11             	xor    (%ecx,%edx,1),%bl
40357f:	80 e3 df             	and    $0xdf,%bl
403582:	75 ed                	jne    0x403571
403584:	49                   	dec    %ecx
403585:	75 f1                	jne    0x403578
403587:	8b 06                	mov    (%esi),%eax
403589:	5a                   	pop    %edx
40358a:	01 d0                	add    %edx,%eax
40358c:	5f                   	pop    %edi
40358d:	5e                   	pop    %esi
40358e:	5b                   	pop    %ebx
40358f:	c3                   	ret
403590:	52                   	push   %edx
403591:	51                   	push   %ecx
403592:	53                   	push   %ebx
403593:	84 d2                	test   %dl,%dl
403595:	7c 03                	jl     0x40359a
403597:	ff 50 f4             	call   *-0xc(%eax)
40359a:	31 d2                	xor    %edx,%edx
40359c:	8d 4c 24 10          	lea    0x10(%esp),%ecx
4035a0:	64 8b 1a             	mov    %fs:(%edx),%ebx
4035a3:	89 19                	mov    %ebx,(%ecx)
4035a5:	89 69 08             	mov    %ebp,0x8(%ecx)
4035a8:	c7 41 04 b9 35 40 00 	movl   $0x4035b9,0x4(%ecx)
4035af:	89 41 0c             	mov    %eax,0xc(%ecx)
4035b2:	64 89 0a             	mov    %ecx,%fs:(%edx)
4035b5:	5b                   	pop    %ebx
4035b6:	59                   	pop    %ecx
4035b7:	5a                   	pop    %edx
4035b8:	c3                   	ret
4035b9:	e9 4e 01 00 00       	jmp    0x40370c
4035be:	8b 44 24 2c          	mov    0x2c(%esp),%eax
4035c2:	8b 40 0c             	mov    0xc(%eax),%eax
4035c5:	85 c0                	test   %eax,%eax
4035c7:	74 0e                	je     0x4035d7
4035c9:	8b 08                	mov    (%eax),%ecx
4035cb:	b2 81                	mov    $0x81,%dl
4035cd:	50                   	push   %eax
4035ce:	ff 51 fc             	call   *-0x4(%ecx)
4035d1:	58                   	pop    %eax
4035d2:	e8 09 00 00 00       	call   0x4035e0
4035d7:	e8 44 04 00 00       	call   0x403a20
4035dc:	c3                   	ret
4035dd:	8d 40 00             	lea    0x0(%eax),%eax
4035e0:	8b 10                	mov    (%eax),%edx
4035e2:	ff 52 f8             	call   *-0x8(%edx)
4035e5:	c3                   	ret
4035e6:	8b c0                	mov    %eax,%eax
4035e8:	53                   	push   %ebx
4035e9:	8b d8                	mov    %eax,%ebx
4035eb:	8b c3                	mov    %ebx,%eax
4035ed:	8b 10                	mov    (%eax),%edx
4035ef:	ff 52 e4             	call   *-0x1c(%edx)
4035f2:	8b c3                	mov    %ebx,%eax
4035f4:	5b                   	pop    %ebx
4035f5:	c3                   	ret
4035f6:	8b c0                	mov    %eax,%eax
4035f8:	84 d2                	test   %dl,%dl
4035fa:	7f 01                	jg     0x4035fd
4035fc:	c3                   	ret
4035fd:	50                   	push   %eax
4035fe:	52                   	push   %edx
4035ff:	8b 10                	mov    (%eax),%edx
403601:	ff 52 e8             	call   *-0x18(%edx)
403604:	5a                   	pop    %edx
403605:	58                   	pop    %eax
403606:	c3                   	ret
403607:	90                   	nop
403608:	80 3d 28 d0 45 00 01 	cmpb   $0x1,0x45d028
40360f:	76 11                	jbe    0x403622
403611:	6a 00                	push   $0x0
403613:	6a 00                	push   $0x0
403615:	6a 00                	push   $0x0
403617:	68 df fa ed 0e       	push   $0xeedfadf
40361c:	ff 15 14 90 46 00    	call   *0x469014
403622:	c3                   	ret
403623:	90                   	nop
403624:	80 3d 28 d0 45 00 00 	cmpb   $0x0,0x45d028
40362b:	74 17                	je     0x403644
40362d:	50                   	push   %eax
40362e:	50                   	push   %eax
40362f:	52                   	push   %edx
403630:	54                   	push   %esp
403631:	6a 02                	push   $0x2
403633:	6a 00                	push   $0x0
403635:	68 e4 fa ed 0e       	push   $0xeedfae4
40363a:	ff 15 14 90 46 00    	call   *0x469014
403640:	83 c4 08             	add    $0x8,%esp
403643:	58                   	pop    %eax
403644:	c3                   	ret
403645:	8d 40 00             	lea    0x0(%eax),%eax
403648:	54                   	push   %esp
403649:	6a 01                	push   $0x1
40364b:	6a 00                	push   $0x0
40364d:	68 e0 fa ed 0e       	push   $0xeedfae0
403652:	ff 15 14 90 46 00    	call   *0x469014
403658:	83 c4 04             	add    $0x4,%esp
40365b:	58                   	pop    %eax
40365c:	c3                   	ret
40365d:	8d 40 00             	lea    0x0(%eax),%eax
403660:	80 3d 28 d0 45 00 01 	cmpb   $0x1,0x45d028
403667:	76 09                	jbe    0x403672
403669:	50                   	push   %eax
40366a:	ff 73 04             	push   0x4(%ebx)
40366d:	e9 d6 ff ff ff       	jmp    0x403648
403672:	c3                   	ret
403673:	90                   	nop
403674:	80 3d 28 d0 45 00 01 	cmpb   $0x1,0x45d028
40367b:	76 07                	jbe    0x403684
40367d:	50                   	push   %eax
40367e:	53                   	push   %ebx
40367f:	e9 c4 ff ff ff       	jmp    0x403648
403684:	c3                   	ret
403685:	8d 40 00             	lea    0x0(%eax),%eax
403688:	85 c9                	test   %ecx,%ecx
40368a:	74 19                	je     0x4036a5
40368c:	8b 41 01             	mov    0x1(%ecx),%eax
40368f:	80 39 e9             	cmpb   $0xe9,(%ecx)
403692:	74 0c                	je     0x4036a0
403694:	80 39 eb             	cmpb   $0xeb,(%ecx)
403697:	75 0c                	jne    0x4036a5
403699:	0f be c0             	movsbl %al,%eax
40369c:	41                   	inc    %ecx
40369d:	41                   	inc    %ecx
40369e:	eb 03                	jmp    0x4036a3
4036a0:	83 c1 05             	add    $0x5,%ecx
4036a3:	01 c1                	add    %eax,%ecx
4036a5:	c3                   	ret
4036a6:	8b c0                	mov    %eax,%eax
4036a8:	80 3d 28 d0 45 00 01 	cmpb   $0x1,0x45d028
4036af:	76 1d                	jbe    0x4036ce
4036b1:	50                   	push   %eax
4036b2:	52                   	push   %edx
4036b3:	51                   	push   %ecx
4036b4:	e8 cf ff ff ff       	call   0x403688
4036b9:	51                   	push   %ecx
4036ba:	54                   	push   %esp
4036bb:	6a 01                	push   $0x1
4036bd:	6a 00                	push   $0x0
4036bf:	68 e1 fa ed 0e       	push   $0xeedfae1
4036c4:	ff 15 14 90 46 00    	call   *0x469014
4036ca:	59                   	pop    %ecx
4036cb:	59                   	pop    %ecx
4036cc:	5a                   	pop    %edx
4036cd:	58                   	pop    %eax
4036ce:	c3                   	ret
4036cf:	90                   	nop
4036d0:	80 3d 28 d0 45 00 01 	cmpb   $0x1,0x45d028
4036d7:	76 12                	jbe    0x4036eb
4036d9:	52                   	push   %edx
4036da:	54                   	push   %esp
4036db:	6a 01                	push   $0x1
4036dd:	6a 00                	push   $0x0
4036df:	68 e2 fa ed 0e       	push   $0xeedfae2
4036e4:	ff 15 14 90 46 00    	call   *0x469014
4036ea:	5a                   	pop    %edx
4036eb:	c3                   	ret
4036ec:	50                   	push   %eax
4036ed:	52                   	push   %edx
4036ee:	80 3d 28 d0 45 00 01 	cmpb   $0x1,0x45d028
4036f5:	76 10                	jbe    0x403707
4036f7:	54                   	push   %esp
4036f8:	6a 02                	push   $0x2
4036fa:	6a 00                	push   $0x0
4036fc:	68 e3 fa ed 0e       	push   $0xeedfae3
403701:	ff 15 14 90 46 00    	call   *0x469014
403707:	5a                   	pop    %edx
403708:	58                   	pop    %eax
403709:	c3                   	ret
40370a:	8b c0                	mov    %eax,%eax
40370c:	8b 44 24 04          	mov    0x4(%esp),%eax
403710:	f7 40 04 06 00 00 00 	testl  $0x6,0x4(%eax)
403717:	0f 85 13 01 00 00    	jne    0x403830
40371d:	81 38 de fa ed 0e    	cmpl   $0xeedfade,(%eax)
403723:	8b 50 18             	mov    0x18(%eax),%edx
403726:	8b 48 14             	mov    0x14(%eax),%ecx
403729:	74 6e                	je     0x403799
40372b:	fc                   	cld
40372c:	e8 77 fa ff ff       	call   0x4031a8
403731:	8b 15 10 90 46 00    	mov    0x469010,%edx
403737:	85 d2                	test   %edx,%edx
403739:	0f 84 f1 00 00 00    	je     0x403830
40373f:	ff d2                	call   *%edx
403741:	85 c0                	test   %eax,%eax
403743:	0f 84 e7 00 00 00    	je     0x403830
403749:	8b 54 24 0c          	mov    0xc(%esp),%edx
40374d:	8b 4c 24 04          	mov    0x4(%esp),%ecx
403751:	81 39 ce fa ef 0e    	cmpl   $0xeefface,(%ecx)
403757:	74 37                	je     0x403790
403759:	e8 c6 fe ff ff       	call   0x403624
40375e:	80 3d 2c d0 45 00 00 	cmpb   $0x0,0x45d02c
403765:	76 29                	jbe    0x403790
403767:	80 3d 28 d0 45 00 00 	cmpb   $0x0,0x45d028
40376e:	77 20                	ja     0x403790
403770:	8d 4c 24 04          	lea    0x4(%esp),%ecx
403774:	50                   	push   %eax
403775:	51                   	push   %ecx
403776:	e8 91 da ff ff       	call   0x40120c
40377b:	83 f8 00             	cmp    $0x0,%eax