50342f:	50                   	push   %eax
503430:	68 a4 00 00 00       	push   $0xa4
503435:	ff 75 c4             	push   -0x3c(%ebp)
503438:	8b 7f 34             	mov    0x34(%edi),%edi
50343b:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
503442:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
503449:	e8 22 02 02 00       	call   0x523670
50344e:	83 c4 10             	add    $0x10,%esp
503451:	85 c0                	test   %eax,%eax
503453:	74 10                	je     0x503465
503455:	8b 4d d0             	mov    -0x30(%ebp),%ecx
503458:	89 48 2c             	mov    %ecx,0x2c(%eax)
50345b:	83 c9 ff             	or     $0xffffffff,%ecx
50345e:	89 78 1c             	mov    %edi,0x1c(%eax)
503461:	66 89 48 20          	mov    %cx,0x20(%eax)
503465:	50                   	push   %eax
503466:	56                   	push   %esi
503467:	6a 34                	push   $0x34
503469:	53                   	push   %ebx
50346a:	e8 a1 eb 02 00       	call   0x532010
50346f:	83 c4 10             	add    $0x10,%esp
503472:	8b f0                	mov    %eax,%esi
503474:	e9 76 01 00 00       	jmp    0x5035ef
503479:	8b 45 b0             	mov    -0x50(%ebp),%eax
50347c:	33 ff                	xor    %edi,%edi
50347e:	33 d2                	xor    %edx,%edx
503480:	89 7d cc             	mov    %edi,-0x34(%ebp)
503483:	33 f6                	xor    %esi,%esi
503485:	89 55 c0             	mov    %edx,-0x40(%ebp)
503488:	66 3b 70 32          	cmp    0x32(%eax),%si
50348c:	0f 83 ed 00 00 00    	jae    0x50357f
503492:	8b 40 04             	mov    0x4(%eax),%eax
503495:	0f b7 34 50          	movzwl (%eax,%edx,2),%esi
503499:	56                   	push   %esi
50349a:	ff 75 b4             	push   -0x4c(%ebp)
50349d:	51                   	push   %ecx
50349e:	53                   	push   %ebx
50349f:	e8 3c e3 ff ff       	call   0x5017e0
5034a4:	89 45 a8             	mov    %eax,-0x58(%ebp)
5034a7:	83 c4 10             	add    $0x10,%esp
5034aa:	8b 45 d0             	mov    -0x30(%ebp),%eax
5034ad:	0f bf ce             	movswl %si,%ecx
5034b0:	8d 14 89             	lea    (%ecx,%ecx,4),%edx
5034b3:	8b 48 04             	mov    0x4(%eax),%ecx
5034b6:	8b 04 91             	mov    (%ecx,%edx,4),%eax
5034b9:	89 45 a4             	mov    %eax,-0x5c(%ebp)
5034bc:	85 c0                	test   %eax,%eax
5034be:	75 04                	jne    0x5034c4
5034c0:	33 f6                	xor    %esi,%esi
5034c2:	eb 1b                	jmp    0x5034df
5034c4:	8b f0                	mov    %eax,%esi
5034c6:	8d 4e 01             	lea    0x1(%esi),%ecx
5034c9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
5034d0:	8a 06                	mov    (%esi),%al
5034d2:	46                   	inc    %esi
5034d3:	84 c0                	test   %al,%al
5034d5:	75 f9                	jne    0x5034d0
5034d7:	2b f1                	sub    %ecx,%esi
5034d9:	81 e6 ff ff ff 3f    	and    $0x3fffffff,%esi
5034df:	8d 5e 01             	lea    0x1(%esi),%ebx
5034e2:	8d 43 34             	lea    0x34(%ebx),%eax
5034e5:	6a 00                	push   $0x0
5034e7:	50                   	push   %eax
5034e8:	ff 75 c4             	push   -0x3c(%ebp)
5034eb:	e8 f0 de 01 00       	call   0x5213e0
5034f0:	8b f8                	mov    %eax,%edi
5034f2:	83 c4 0c             	add    $0xc,%esp
5034f5:	85 ff                	test   %edi,%edi
5034f7:	74 4c                	je     0x503545
5034f9:	6a 34                	push   $0x34
5034fb:	6a 00                	push   $0x0
5034fd:	57                   	push   %edi
5034fe:	e8 fd 04 0e 00       	call   0x5e3a00
503503:	83 c8 ff             	or     $0xffffffff,%eax
503506:	c6 07 3b             	movb   $0x3b,(%edi)
503509:	83 c4 0c             	add    $0xc,%esp
50350c:	66 89 47 22          	mov    %ax,0x22(%edi)
503510:	85 db                	test   %ebx,%ebx
503512:	75 0c                	jne    0x503520
503514:	81 4f 04 00 04 80 20 	orl    $0x20800400,0x4(%edi)
50351b:	89 5f 08             	mov    %ebx,0x8(%edi)
50351e:	eb 1e                	jmp    0x50353e
503520:	8d 47 34             	lea    0x34(%edi),%eax
503523:	89 47 08             	mov    %eax,0x8(%edi)
503526:	85 f6                	test   %esi,%esi
503528:	74 0d                	je     0x503537
50352a:	56                   	push   %esi
50352b:	ff 75 a4             	push   -0x5c(%ebp)
50352e:	50                   	push   %eax
50352f:	e8 cc f9 0d 00       	call   0x5e2f00
503534:	83 c4 0c             	add    $0xc,%esp
503537:	8b 47 08             	mov    0x8(%edi),%eax
50353a:	c6 04 06 00          	movb   $0x0,(%esi,%eax,1)
50353e:	c7 47 18 01 00 00 00 	movl   $0x1,0x18(%edi)
503545:	8b 5d a0             	mov    -0x60(%ebp),%ebx
503548:	57                   	push   %edi
503549:	ff 75 a8             	push   -0x58(%ebp)
50354c:	6a 2d                	push   $0x2d
50354e:	53                   	push   %ebx
50354f:	e8 bc ea 02 00       	call   0x532010
503554:	50                   	push   %eax
503555:	ff 75 cc             	push   -0x34(%ebp)
503558:	53                   	push   %ebx
503559:	e8 a2 02 02 00       	call   0x523800
50355e:	8b 55 c0             	mov    -0x40(%ebp),%edx
503561:	8b f8                	mov    %eax,%edi
503563:	8b 45 b0             	mov    -0x50(%ebp),%eax
503566:	42                   	inc    %edx
503567:	83 c4 1c             	add    $0x1c,%esp
50356a:	89 7d cc             	mov    %edi,-0x34(%ebp)
50356d:	89 55 c0             	mov    %edx,-0x40(%ebp)
503570:	0f b7 48 32          	movzwl 0x32(%eax),%ecx
503574:	3b d1                	cmp    %ecx,%edx
503576:	8b 4d d0             	mov    -0x30(%ebp),%ecx
503579:	0f 8c 13 ff ff ff    	jl     0x503492
50357f:	6a 00                	push   $0x0
503581:	6a 34                	push   $0x34
503583:	ff 33                	push   (%ebx)
503585:	e8 56 de 01 00       	call   0x5213e0
50358a:	8b f0                	mov    %eax,%esi
50358c:	83 c4 0c             	add    $0xc,%esp
50358f:	85 f6                	test   %esi,%esi
503591:	74 4d                	je     0x5035e0
503593:	6a 34                	push   $0x34
503595:	6a 00                	push   $0x0
503597:	56                   	push   %esi
503598:	e8 63 04 0e 00       	call   0x5e3a00
50359d:	83 c8 ff             	or     $0xffffffff,%eax
5035a0:	c6 06 13             	movb   $0x13,(%esi)
5035a3:	83 c4 0c             	add    $0xc,%esp
5035a6:	66 89 46 22          	mov    %ax,0x22(%esi)
5035aa:	85 ff                	test   %edi,%edi
5035ac:	74 0e                	je     0x5035bc
5035ae:	89 7e 0c             	mov    %edi,0xc(%esi)
5035b1:	8b 47 04             	mov    0x4(%edi),%eax
5035b4:	25 04 01 20 00       	and    $0x200104,%eax
5035b9:	09 46 04             	or     %eax,0x4(%esi)
5035bc:	56                   	push   %esi
5035bd:	e8 fe e0 ff ff       	call   0x5016c0
5035c2:	8b 03                	mov    (%ebx),%eax
5035c4:	83 c4 04             	add    $0x4,%esp
5035c7:	8b 40 78             	mov    0x78(%eax),%eax
5035ca:	39 46 18             	cmp    %eax,0x18(%esi)
5035cd:	7e 20                	jle    0x5035ef
5035cf:	50                   	push   %eax
5035d0:	68 30 90 6b 00       	push   $0x6b9030
5035d5:	53                   	push   %ebx
5035d6:	e8 85 fc 01 00       	call   0x523260
5035db:	83 c4 0c             	add    $0xc,%esp
5035de:	eb 0f                	jmp    0x5035ef
5035e0:	85 ff                	test   %edi,%edi
5035e2:	74 0b                	je     0x5035ef
5035e4:	57                   	push   %edi
5035e5:	ff 33                	push   (%ebx)
5035e7:	e8 c4 31 02 00       	call   0x5267b0
5035ec:	83 c4 08             	add    $0x8,%esp
5035ef:	56                   	push   %esi
5035f0:	ff 75 d8             	push   -0x28(%ebp)
5035f3:	53                   	push   %ebx
5035f4:	e8 07 02 02 00       	call   0x523800
5035f9:	83 c4 0c             	add    $0xc,%esp
5035fc:	8b f8                	mov    %eax,%edi
5035fe:	8b 75 9c             	mov    -0x64(%ebp),%esi
503601:	8d 45 dc             	lea    -0x24(%ebp),%eax
503604:	0f 57 c0             	xorps  %xmm0,%xmm0
503607:	0f 11 45 dc          	movups %xmm0,-0x24(%ebp)
50360b:	57                   	push   %edi
50360c:	50                   	push   %eax
50360d:	0f 11 45 ec          	movups %xmm0,-0x14(%ebp)
503611:	89 75 e0             	mov    %esi,-0x20(%ebp)
503614:	89 5d dc             	mov    %ebx,-0x24(%ebp)
503617:	e8 64 4c 03 00       	call   0x538280
50361c:	83 c4 08             	add    $0x8,%esp
50361f:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
503623:	75 7d                	jne    0x5036a2
503625:	6a 00                	push   $0x0
503627:	6a 00                	push   $0x0
503629:	6a 00                	push   $0x0
50362b:	6a 00                	push   $0x0
50362d:	57                   	push   %edi
50362e:	56                   	push   %esi
50362f:	53                   	push   %ebx
503630:	e8 4b c9 04 00       	call   0x54ff80
503635:	8b 5d c8             	mov    -0x38(%ebp),%ebx
503638:	8b f0                	mov    %eax,%esi
50363a:	8b 45 d4             	mov    -0x2c(%ebp),%eax
50363d:	83 c4 1c             	add    $0x1c,%esp
503640:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
503643:	0f b6 50 18          	movzbl 0x18(%eax),%edx
503647:	39 4b 70             	cmp    %ecx,0x70(%ebx)
50364a:	7f 16                	jg     0x503662
50364c:	6a 00                	push   $0x0
50364e:	ff 75 24             	push   0x24(%ebp)
503651:	52                   	push   %edx
503652:	68 95 00 00 00       	push   $0x95
503657:	53                   	push   %ebx
503658:	e8 a3 2e 00 00       	call   0x506500
50365d:	83 c4 14             	add    $0x14,%esp
503660:	eb 31                	jmp    0x503693
503662:	8d 41 01             	lea    0x1(%ecx),%eax
503665:	89 43 6c             	mov    %eax,0x6c(%ebx)
503668:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
50366b:	8b 43 68             	mov    0x68(%ebx),%eax
50366e:	8b 5d c8             	mov    -0x38(%ebp),%ebx
503671:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
503675:	8b 55 24             	mov    0x24(%ebp),%edx
503678:	c7 04 88 95 00 00 00 	movl   $0x95,(%eax,%ecx,4)
50367f:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
503683:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
50368a:	00
50368b:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
503692:	00
503693:	85 f6                	test   %esi,%esi
503695:	74 0e                	je     0x5036a5
503697:	56                   	push   %esi
503698:	e8 73 f7 04 00       	call   0x552e10
50369d:	83 c4 04             	add    $0x4,%esp
5036a0:	eb 03                	jmp    0x5036a5
5036a2:	8b 5d c8             	mov    -0x38(%ebp),%ebx
5036a5:	85 ff                	test   %edi,%edi
5036a7:	74 0c                	je     0x5036b5
5036a9:	57                   	push   %edi
5036aa:	ff 75 c4             	push   -0x3c(%ebp)
5036ad:	e8 fe 30 02 00       	call   0x5267b0
5036b2:	83 c4 08             	add    $0x8,%esp
5036b5:	8b 4d ac             	mov    -0x54(%ebp),%ecx
5036b8:	85 c9                	test   %ecx,%ecx
5036ba:	74 36                	je     0x5036f2
5036bc:	8b 53 6c             	mov    0x6c(%ebx),%edx
5036bf:	79 03                	jns    0x5036c4
5036c1:	8d 4a ff             	lea    -0x1(%edx),%ecx
5036c4:	8b 03                	mov    (%ebx),%eax
5036c6:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5036ca:	74 19                	je     0x5036e5
5036cc:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
5036d1:	5f                   	pop    %edi
5036d2:	5e                   	pop    %esi
5036d3:	5b                   	pop    %ebx
5036d4:	89 50 08             	mov    %edx,0x8(%eax)
5036d7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5036da:	33 cd                	xor    %ebp,%ecx
5036dc:	e8 f9 dd 0d 00       	call   0x5e14da
5036e1:	8b e5                	mov    %ebp,%esp
5036e3:	5d                   	pop    %ebp
5036e4:	c3                   	ret
5036e5:	8b 43 68             	mov    0x68(%ebx),%eax
5036e8:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5036eb:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
5036ef:	8d 04 88             	lea    (%eax,%ecx,4),%eax
5036f2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5036f5:	5f                   	pop    %edi
5036f6:	5e                   	pop    %esi
5036f7:	33 cd                	xor    %ebp,%ecx
5036f9:	5b                   	pop    %ebx
5036fa:	e8 db dd 0d 00       	call   0x5e14da
5036ff:	8b e5                	mov    %ebp,%esp
503701:	5d                   	pop    %ebp
503702:	c3                   	ret
503703:	cc                   	int3
503704:	cc                   	int3
503705:	cc                   	int3
503706:	cc                   	int3
503707:	cc                   	int3
503708:	cc                   	int3
503709:	cc                   	int3
50370a:	cc                   	int3
50370b:	cc                   	int3
50370c:	cc                   	int3
50370d:	cc                   	int3
50370e:	cc                   	int3
50370f:	cc                   	int3
503710:	55                   	push   %ebp
503711:	8b ec                	mov    %esp,%ebp
503713:	57                   	push   %edi
503714:	8b 7d 0c             	mov    0xc(%ebp),%edi
503717:	85 ff                	test   %edi,%edi
503719:	74 5a                	je     0x503775
50371b:	53                   	push   %ebx
50371c:	8b 5f 1c             	mov    0x1c(%edi),%ebx
50371f:	56                   	push   %esi
503720:	8b 75 08             	mov    0x8(%ebp),%esi
503723:	8b 43 10             	mov    0x10(%ebx),%eax
503726:	85 c0                	test   %eax,%eax
503728:	74 0a                	je     0x503734
50372a:	50                   	push   %eax
50372b:	56                   	push   %esi
50372c:	e8 7f 30 02 00       	call   0x5267b0
503731:	83 c4 08             	add    $0x8,%esp
503734:	8b 43 14             	mov    0x14(%ebx),%eax
503737:	85 c0                	test   %eax,%eax
503739:	74 0a                	je     0x503745
50373b:	50                   	push   %eax
50373c:	56                   	push   %esi
50373d:	e8 be d8 ff ff       	call   0x501000
503742:	83 c4 08             	add    $0x8,%esp
503745:	8b 43 08             	mov    0x8(%ebx),%eax
503748:	85 c0                	test   %eax,%eax
50374a:	74 0c                	je     0x503758
50374c:	6a 01                	push   $0x1
50374e:	50                   	push   %eax
50374f:	56                   	push   %esi
503750:	e8 9b 56 ff ff       	call   0x4f8df0
503755:	83 c4 0c             	add    $0xc,%esp
503758:	8b 47 0c             	mov    0xc(%edi),%eax
50375b:	85 c0                	test   %eax,%eax
50375d:	74 0a                	je     0x503769
50375f:	50                   	push   %eax
503760:	56                   	push   %esi
503761:	e8 4a 30 02 00       	call   0x5267b0
503766:	83 c4 08             	add    $0x8,%esp
503769:	57                   	push   %edi
50376a:	56                   	push   %esi
50376b:	e8 00 dc 01 00       	call   0x521370
503770:	83 c4 08             	add    $0x8,%esp
503773:	5e                   	pop    %esi
503774:	5b                   	pop    %ebx
503775:	5f                   	pop    %edi
503776:	5d                   	pop    %ebp
503777:	c3                   	ret
503778:	cc                   	int3
503779:	cc                   	int3
50377a:	cc                   	int3
50377b:	cc                   	int3
50377c:	cc                   	int3
50377d:	cc                   	int3
50377e:	cc                   	int3
50377f:	cc                   	int3
503780:	55                   	push   %ebp
503781:	8b ec                	mov    %esp,%ebp
503783:	83 ec 54             	sub    $0x54,%esp
503786:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50378b:	33 c5                	xor    %ebp,%eax
50378d:	89 45 fc             	mov    %eax,-0x4(%ebp)
503790:	8b 4d 08             	mov    0x8(%ebp),%ecx
503793:	8b 55 10             	mov    0x10(%ebp),%edx
503796:	53                   	push   %ebx
503797:	8b 5d 0c             	mov    0xc(%ebp),%ebx
50379a:	8b 81 f0 00 00 00    	mov    0xf0(%ecx),%eax
5037a0:	89 45 d8             	mov    %eax,-0x28(%ebp)
5037a3:	8b 01                	mov    (%ecx),%eax
5037a5:	89 4d cc             	mov    %ecx,-0x34(%ebp)
5037a8:	89 5d c0             	mov    %ebx,-0x40(%ebp)
5037ab:	89 55 b8             	mov    %edx,-0x48(%ebp)
5037ae:	f6 40 4c 01          	testb  $0x1,0x4c(%eax)
5037b2:	c7 45 c8 ff ff ff ff 	movl   $0xffffffff,-0x38(%ebp)
5037b9:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
5037c0:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5037c3:	74 11                	je     0x5037d6
5037c5:	33 c0                	xor    %eax,%eax
5037c7:	5b                   	pop    %ebx