593480:	8b 54 24 04          	mov    0x4(%esp),%edx
593484:	56                   	push   %esi
593485:	8b 74 24 10          	mov    0x10(%esp),%esi
593489:	39 72 04             	cmp    %esi,0x4(%edx)
59348c:	72 14                	jb     0x5934a2
59348e:	8b 44 24 0c          	mov    0xc(%esp),%eax
593492:	8b 0a                	mov    (%edx),%ecx
593494:	89 08                	mov    %ecx,(%eax)
593496:	b8 01 00 00 00       	mov    $0x1,%eax
59349b:	01 32                	add    %esi,(%edx)
59349d:	29 72 04             	sub    %esi,0x4(%edx)
5934a0:	5e                   	pop    %esi
5934a1:	c3                   	ret
5934a2:	33 c0                	xor    %eax,%eax
5934a4:	5e                   	pop    %esi
5934a5:	c3                   	ret
5934a6:	cc                   	int3
5934a7:	cc                   	int3
5934a8:	cc                   	int3
5934a9:	cc                   	int3
5934aa:	cc                   	int3
5934ab:	cc                   	int3
5934ac:	cc                   	int3
5934ad:	cc                   	int3
5934ae:	cc                   	int3
5934af:	cc                   	int3
5934b0:	56                   	push   %esi
5934b1:	8b 74 24 08          	mov    0x8(%esp),%esi
5934b5:	83 7e 04 02          	cmpl   $0x2,0x4(%esi)
5934b9:	72 26                	jb     0x5934e1
5934bb:	8b 06                	mov    (%esi),%eax
5934bd:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
5934c1:	0f b6 10             	movzbl (%eax),%edx
5934c4:	c1 e2 08             	shl    $0x8,%edx
5934c7:	89 11                	mov    %edx,(%ecx)
5934c9:	8b 06                	mov    (%esi),%eax
5934cb:	0f b6 40 01          	movzbl 0x1(%eax),%eax
5934cf:	0b c2                	or     %edx,%eax
5934d1:	89 01                	mov    %eax,(%ecx)
5934d3:	b8 01 00 00 00       	mov    $0x1,%eax
5934d8:	83 06 02             	addl   $0x2,(%esi)
5934db:	83 46 04 fe          	addl   $0xfffffffe,0x4(%esi)
5934df:	5e                   	pop    %esi
5934e0:	c3                   	ret
5934e1:	33 c0                	xor    %eax,%eax
5934e3:	5e                   	pop    %esi
5934e4:	c3                   	ret
5934e5:	cc                   	int3
5934e6:	cc                   	int3
5934e7:	cc                   	int3
5934e8:	cc                   	int3
5934e9:	cc                   	int3
5934ea:	cc                   	int3
5934eb:	cc                   	int3
5934ec:	cc                   	int3
5934ed:	cc                   	int3
5934ee:	cc                   	int3
5934ef:	cc                   	int3
5934f0:	8b 44 24 08          	mov    0x8(%esp),%eax
5934f4:	ff 30                	push   (%eax)
5934f6:	8b 44 24 08          	mov    0x8(%esp),%eax
5934fa:	ff 30                	push   (%eax)
5934fc:	e8 4f 46 fc ff       	call   0x557b50
593501:	83 c4 08             	add    $0x8,%esp
593504:	c3                   	ret
593505:	cc                   	int3
593506:	cc                   	int3
593507:	cc                   	int3
593508:	cc                   	int3
593509:	cc                   	int3
59350a:	cc                   	int3
59350b:	cc                   	int3
59350c:	cc                   	int3
59350d:	cc                   	int3
59350e:	cc                   	int3
59350f:	cc                   	int3
593510:	81 7c 24 08 03 03 00 	cmpl   $0x303,0x8(%esp)
593517:	00
593518:	56                   	push   %esi
593519:	8b 74 24 08          	mov    0x8(%esp),%esi
59351d:	75 20                	jne    0x59353f
59351f:	6a 00                	push   $0x0
593521:	68 04 03 00 00       	push   $0x304
593526:	56                   	push   %esi
593527:	e8 64 14 00 00       	call   0x594990
59352c:	83 c4 0c             	add    $0xc,%esp
59352f:	85 c0                	test   %eax,%eax
593531:	74 0c                	je     0x59353f
593533:	8b 44 24 10          	mov    0x10(%esp),%eax
593537:	5e                   	pop    %esi
593538:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
59353e:	c3                   	ret
59353f:	8b 46 04             	mov    0x4(%esi),%eax
593542:	8b 40 64             	mov    0x64(%eax),%eax
593545:	f6 40 30 08          	testb  $0x8,0x30(%eax)
593549:	75 2a                	jne    0x593575
59354b:	81 7c 24 0c 03 03 00 	cmpl   $0x303,0xc(%esp)
593552:	00
593553:	7d 20                	jge    0x593575
593555:	6a 00                	push   $0x0
593557:	68 03 03 00 00       	push   $0x303
59355c:	56                   	push   %esi
59355d:	e8 2e 14 00 00       	call   0x594990
593562:	83 c4 0c             	add    $0xc,%esp
593565:	85 c0                	test   %eax,%eax
593567:	74 0c                	je     0x593575
593569:	8b 44 24 10          	mov    0x10(%esp),%eax
59356d:	5e                   	pop    %esi
59356e:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
593574:	c3                   	ret
593575:	8b 44 24 10          	mov    0x10(%esp),%eax
593579:	5e                   	pop    %esi
59357a:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
593580:	c3                   	ret
593581:	cc                   	int3
593582:	cc                   	int3
593583:	cc                   	int3
593584:	cc                   	int3
593585:	cc                   	int3
593586:	cc                   	int3
593587:	cc                   	int3
593588:	cc                   	int3
593589:	cc                   	int3
59358a:	cc                   	int3
59358b:	cc                   	int3
59358c:	cc                   	int3
59358d:	cc                   	int3
59358e:	cc                   	int3
59358f:	cc                   	int3
593590:	53                   	push   %ebx
593591:	8b 5c 24 10          	mov    0x10(%esp),%ebx
593595:	55                   	push   %ebp
593596:	56                   	push   %esi
593597:	57                   	push   %edi
593598:	85 db                	test   %ebx,%ebx
59359a:	74 3e                	je     0x5935da
59359c:	8b 7c 24 20          	mov    0x20(%esp),%edi
5935a0:	85 ff                	test   %edi,%edi
5935a2:	74 36                	je     0x5935da
5935a4:	33 f6                	xor    %esi,%esi
5935a6:	85 ff                	test   %edi,%edi
5935a8:	74 30                	je     0x5935da
5935aa:	8b 6c 24 24          	mov    0x24(%esp),%ebp
5935ae:	66 90                	xchg   %ax,%ax
5935b0:	0f b7 04 73          	movzwl (%ebx,%esi,2),%eax
5935b4:	66 39 44 24 18       	cmp    %ax,0x18(%esp)
5935b9:	75 1a                	jne    0x5935d5
5935bb:	85 ed                	test   %ebp,%ebp
5935bd:	74 22                	je     0x5935e1
5935bf:	68 06 00 02 00       	push   $0x20006
5935c4:	50                   	push   %eax
5935c5:	ff 74 24 1c          	push   0x1c(%esp)
5935c9:	e8 b2 78 00 00       	call   0x59ae80
5935ce:	83 c4 0c             	add    $0xc,%esp
5935d1:	85 c0                	test   %eax,%eax
5935d3:	75 0c                	jne    0x5935e1
5935d5:	46                   	inc    %esi
5935d6:	3b f7                	cmp    %edi,%esi
5935d8:	72 d6                	jb     0x5935b0
5935da:	5f                   	pop    %edi
5935db:	5e                   	pop    %esi
5935dc:	5d                   	pop    %ebp
5935dd:	33 c0                	xor    %eax,%eax
5935df:	5b                   	pop    %ebx
5935e0:	c3                   	ret
5935e1:	5f                   	pop    %edi
5935e2:	5e                   	pop    %esi
5935e3:	5d                   	pop    %ebp
5935e4:	b8 01 00 00 00       	mov    $0x1,%eax
5935e9:	5b                   	pop    %ebx
5935ea:	c3                   	ret
5935eb:	cc                   	int3
5935ec:	cc                   	int3
5935ed:	cc                   	int3
5935ee:	cc                   	int3
5935ef:	cc                   	int3
5935f0:	b8 04 00 00 00       	mov    $0x4,%eax
5935f5:	e8 b6 e1 03 00       	call   0x5d17b0
5935fa:	6a 02                	push   $0x2
5935fc:	ff 74 24 14          	push   0x14(%esp)
593600:	e8 1b 0b 01 00       	call   0x5a4120
593605:	83 c4 08             	add    $0x8,%esp
593608:	85 c0                	test   %eax,%eax
59360a:	75 23                	jne    0x59362f
59360c:	68 15 09 00 00       	push   $0x915
593611:	68 e0 71 66 00       	push   $0x6671e0
593616:	6a 44                	push   $0x44
593618:	68 28 02 00 00       	push   $0x228
59361d:	6a 50                	push   $0x50
59361f:	ff 74 24 1c          	push   0x1c(%esp)
593623:	e8 e8 ba ff ff       	call   0x58f110
593628:	83 c4 18             	add    $0x18,%esp
59362b:	33 c0                	xor    %eax,%eax
59362d:	59                   	pop    %ecx
59362e:	c3                   	ret
59362f:	53                   	push   %ebx
593630:	55                   	push   %ebp
593631:	8b 6c 24 14          	mov    0x14(%esp),%ebp
593635:	56                   	push   %esi
593636:	57                   	push   %edi
593637:	85 ed                	test   %ebp,%ebp
593639:	74 72                	je     0x5936ad
59363b:	55                   	push   %ebp
59363c:	33 f6                	xor    %esi,%esi
59363e:	e8 7d 1a f5 ff       	call   0x4e50c0
593643:	83 c4 04             	add    $0x4,%esp
593646:	85 c0                	test   %eax,%eax
593648:	7e 63                	jle    0x5936ad
59364a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
593650:	56                   	push   %esi
593651:	55                   	push   %ebp
593652:	e8 29 1c f5 ff       	call   0x4e5280
593657:	8b f8                	mov    %eax,%edi
593659:	83 c4 08             	add    $0x8,%esp
59365c:	85 ff                	test   %edi,%edi
59365e:	0f 84 80 00 00 00    	je     0x5936e4
593664:	6a 00                	push   $0x0
593666:	57                   	push   %edi
593667:	e8 a4 86 fc ff       	call   0x55bd10
59366c:	8b d8                	mov    %eax,%ebx
59366e:	83 c4 08             	add    $0x8,%esp
593671:	85 db                	test   %ebx,%ebx
593673:	78 6f                	js     0x5936e4
593675:	6a 02                	push   $0x2
593677:	8d 44 24 14          	lea    0x14(%esp),%eax
59367b:	50                   	push   %eax
59367c:	53                   	push   %ebx
59367d:	ff 74 24 2c          	push   0x2c(%esp)
593681:	e8 4a 0b 01 00       	call   0x5a41d0
593686:	83 c4 10             	add    $0x10,%esp
593689:	85 c0                	test   %eax,%eax
59368b:	74 57                	je     0x5936e4
59368d:	8d 44 24 10          	lea    0x10(%esp),%eax
593691:	50                   	push   %eax
593692:	57                   	push   %edi
593693:	e8 78 86 fc ff       	call   0x55bd10
593698:	83 c4 08             	add    $0x8,%esp
59369b:	3b c3                	cmp    %ebx,%eax
59369d:	75 45                	jne    0x5936e4
59369f:	55                   	push   %ebp
5936a0:	46                   	inc    %esi
5936a1:	e8 1a 1a f5 ff       	call   0x4e50c0
5936a6:	83 c4 04             	add    $0x4,%esp
5936a9:	3b f0                	cmp    %eax,%esi
5936ab:	7c a3                	jl     0x593650
5936ad:	ff 74 24 20          	push   0x20(%esp)
5936b1:	e8 2a 06 01 00       	call   0x5a3ce0
5936b6:	83 c4 04             	add    $0x4,%esp
5936b9:	85 c0                	test   %eax,%eax
5936bb:	75 2e                	jne    0x5936eb
5936bd:	68 2f 09 00 00       	push   $0x92f
5936c2:	68 e0 71 66 00       	push   $0x6671e0
5936c7:	6a 44                	push   $0x44
5936c9:	68 28 02 00 00       	push   $0x228
5936ce:	6a 50                	push   $0x50
5936d0:	ff 74 24 2c          	push   0x2c(%esp)
5936d4:	e8 37 ba ff ff       	call   0x58f110
5936d9:	83 c4 18             	add    $0x18,%esp
5936dc:	33 c0                	xor    %eax,%eax
5936de:	5f                   	pop    %edi
5936df:	5e                   	pop    %esi
5936e0:	5d                   	pop    %ebp
5936e1:	5b                   	pop    %ebx
5936e2:	59                   	pop    %ecx
5936e3:	c3                   	ret
5936e4:	68 27 09 00 00       	push   $0x927
5936e9:	eb d7                	jmp    0x5936c2
5936eb:	5f                   	pop    %edi
5936ec:	5e                   	pop    %esi
5936ed:	5d                   	pop    %ebp
5936ee:	b8 01 00 00 00       	mov    $0x1,%eax
5936f3:	5b                   	pop    %ebx
5936f4:	59                   	pop    %ecx
5936f5:	c3                   	ret
5936f6:	cc                   	int3
5936f7:	cc                   	int3
5936f8:	cc                   	int3
5936f9:	cc                   	int3
5936fa:	cc                   	int3
5936fb:	cc                   	int3
5936fc:	cc                   	int3
5936fd:	cc                   	int3
5936fe:	cc                   	int3
5936ff:	cc                   	int3
593700:	53                   	push   %ebx
593701:	56                   	push   %esi
593702:	57                   	push   %edi
593703:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
593707:	68 3b 09 00 00       	push   $0x93b
59370c:	68 e0 71 66 00       	push   $0x6671e0
593711:	8d 5f 40             	lea    0x40(%edi),%ebx
593714:	53                   	push   %ebx
593715:	e8 36 d0 f4 ff       	call   0x4e0750
59371a:	8b f0                	mov    %eax,%esi
59371c:	83 c4 0c             	add    $0xc,%esp
59371f:	85 f6                	test   %esi,%esi
593721:	75 25                	jne    0x593748
593723:	68 3f 09 00 00       	push   $0x93f
593728:	68 e0 71 66 00       	push   $0x6671e0
59372d:	6a 41                	push   $0x41
59372f:	68 29 02 00 00       	push   $0x229
593734:	6a 50                	push   $0x50
593736:	ff 74 24 24          	push   0x24(%esp)
59373a:	e8 d1 b9 ff ff       	call   0x58f110
59373f:	83 c4 18             	add    $0x18,%esp
593742:	33 c0                	xor    %eax,%eax
593744:	5f                   	pop    %edi
593745:	5e                   	pop    %esi
593746:	5b                   	pop    %ebx
593747:	c3                   	ret
593748:	8b 4c 24 10          	mov    0x10(%esp),%ecx
59374c:	57                   	push   %edi
59374d:	ff 74 24 1c          	push   0x1c(%esp)
593751:	8b 41 7c             	mov    0x7c(%ecx),%eax
593754:	0f 10 80 ac 00 00 00 	movups 0xac(%eax),%xmm0
59375b:	0f 11 06             	movups %xmm0,(%esi)
59375e:	0f 10 80 bc 00 00 00 	movups 0xbc(%eax),%xmm0
593765:	0f 11 46 10          	movups %xmm0,0x10(%esi)
593769:	8b 41 7c             	mov    0x7c(%ecx),%eax
59376c:	8d 4e 40             	lea    0x40(%esi),%ecx
59376f:	51                   	push   %ecx
593770:	0f 10 80 8c 00 00 00 	movups 0x8c(%eax),%xmm0
593777:	0f 11 46 20          	movups %xmm0,0x20(%esi)
59377b:	0f 10 80 9c 00 00 00 	movups 0x9c(%eax),%xmm0
593782:	0f 11 46 30          	movups %xmm0,0x30(%esi)
593786:	e8 45 f6 03 00       	call   0x5d2dd0
59378b:	8b 4c 24 20          	mov    0x20(%esp),%ecx
59378f:	83 c4 0c             	add    $0xc,%esp
593792:	8b c3                	mov    %ebx,%eax
593794:	5f                   	pop    %edi
593795:	89 31                	mov    %esi,(%ecx)
593797:	5e                   	pop    %esi
593798:	5b                   	pop    %ebx
593799:	c3                   	ret
59379a:	cc                   	int3
59379b:	cc                   	int3
59379c:	cc                   	int3
59379d:	cc                   	int3
59379e:	cc                   	int3
59379f:	cc                   	int3
5937a0:	b8 48 00 00 00       	mov    $0x48,%eax
5937a5:	e8 06 e0 03 00       	call   0x5d17b0
5937aa:	a1 c0 14 69 00       	mov    0x6914c0,%eax
5937af:	33 c4                	xor    %esp,%eax
5937b1:	89 44 24 44          	mov    %eax,0x44(%esp)
5937b5:	53                   	push   %ebx
5937b6:	8b 5c 24 5c          	mov    0x5c(%esp),%ebx
5937ba:	56                   	push   %esi
5937bb:	8b 74 24 54          	mov    0x54(%esp),%esi
5937bf:	57                   	push   %edi