5176b2:	85 db                	test   %ebx,%ebx
5176b4:	7e 20                	jle    0x5176d6
5176b6:	8b cb                	mov    %ebx,%ecx
5176b8:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
5176bf:	00
5176c0:	8b 86 3c 01 00 00    	mov    0x13c(%esi),%eax
5176c6:	89 07                	mov    %eax,(%edi)
5176c8:	89 be 3c 01 00 00    	mov    %edi,0x13c(%esi)
5176ce:	83 ef 80             	sub    $0xffffff80,%edi
5176d1:	83 e9 01             	sub    $0x1,%ecx
5176d4:	75 ea                	jne    0x5176c0
5176d6:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
5176da:	89 be 4c 01 00 00    	mov    %edi,0x14c(%esi)
5176e0:	0f 94 c0             	sete   %al
5176e3:	c7 86 18 01 00 00 00 	movl   $0x0,0x118(%esi)
5176ea:	00 00 00
5176ed:	88 86 20 01 00 00    	mov    %al,0x120(%esi)
5176f3:	8d 04 13             	lea    (%ebx,%edx,1),%eax
5176f6:	5f                   	pop    %edi
5176f7:	89 86 24 01 00 00    	mov    %eax,0x124(%esi)
5176fd:	33 c0                	xor    %eax,%eax
5176ff:	5e                   	pop    %esi
517700:	5b                   	pop    %ebx
517701:	8b e5                	mov    %ebp,%esp
517703:	5d                   	pop    %ebp
517704:	c3                   	ret
517705:	33 c0                	xor    %eax,%eax
517707:	89 b6 48 01 00 00    	mov    %esi,0x148(%esi)
51770d:	5f                   	pop    %edi
51770e:	c7 86 3c 01 00 00 00 	movl   $0x0,0x13c(%esi)
517715:	00 00 00
517718:	c7 86 40 01 00 00 00 	movl   $0x0,0x140(%esi)
51771f:	00 00 00
517722:	89 b6 44 01 00 00    	mov    %esi,0x144(%esi)
517728:	89 b6 4c 01 00 00    	mov    %esi,0x14c(%esi)
51772e:	c7 86 18 01 00 00 01 	movl   $0x1,0x118(%esi)
517735:	00 00 00
517738:	66 89 86 1c 01 00 00 	mov    %ax,0x11c(%esi)
51773f:	88 86 20 01 00 00    	mov    %al,0x120(%esi)
517745:	89 86 24 01 00 00    	mov    %eax,0x124(%esi)
51774b:	5e                   	pop    %esi
51774c:	5b                   	pop    %ebx
51774d:	8b e5                	mov    %ebp,%esp
51774f:	5d                   	pop    %ebp
517750:	c3                   	ret
517751:	cc                   	int3
517752:	cc                   	int3
517753:	cc                   	int3
517754:	cc                   	int3
517755:	cc                   	int3
517756:	cc                   	int3
517757:	cc                   	int3
517758:	cc                   	int3
517759:	cc                   	int3
51775a:	cc                   	int3
51775b:	cc                   	int3
51775c:	cc                   	int3
51775d:	cc                   	int3
51775e:	cc                   	int3
51775f:	cc                   	int3
517760:	55                   	push   %ebp
517761:	8b ec                	mov    %esp,%ebp
517763:	8b 45 08             	mov    0x8(%ebp),%eax
517766:	85 c0                	test   %eax,%eax
517768:	79 10                	jns    0x51777a
51776a:	3d 00 00 00 80       	cmp    $0x80000000,%eax
51776f:	75 07                	jne    0x517778
517771:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
517776:	5d                   	pop    %ebp
517777:	c3                   	ret
517778:	f7 d8                	neg    %eax
51777a:	5d                   	pop    %ebp
51777b:	c3                   	ret
51777c:	cc                   	int3
51777d:	cc                   	int3
51777e:	cc                   	int3
51777f:	cc                   	int3
517780:	55                   	push   %ebp
517781:	8b ec                	mov    %esp,%ebp
517783:	56                   	push   %esi
517784:	8b 75 08             	mov    0x8(%ebp),%esi
517787:	57                   	push   %edi
517788:	8b be e4 00 00 00    	mov    0xe4(%esi),%edi
51778e:	8b 16                	mov    (%esi),%edx
517790:	85 ff                	test   %edi,%edi
517792:	74 4e                	je     0x5177e2
517794:	80 be c8 00 00 00 01 	cmpb   $0x1,0xc8(%esi)
51779b:	74 45                	je     0x5177e2
51779d:	0f b6 8a a4 00 00 00 	movzbl 0xa4(%edx),%ecx
5177a4:	8b 42 10             	mov    0x10(%edx),%eax
5177a7:	03 c9                	add    %ecx,%ecx
5177a9:	8b 44 c8 04          	mov    0x4(%eax,%ecx,8),%eax
5177ad:	8b 40 04             	mov    0x4(%eax),%eax
5177b0:	f6 40 16 01          	testb  $0x1,0x16(%eax)
5177b4:	75 2c                	jne    0x5177e2
5177b6:	ff 75 0c             	push   0xc(%ebp)
5177b9:	ff 77 18             	push   0x18(%edi)
5177bc:	56                   	push   %esi
5177bd:	e8 be fd 00 00       	call   0x527580
5177c2:	83 c4 0c             	add    $0xc,%esp
5177c5:	89 47 18             	mov    %eax,0x18(%edi)
5177c8:	83 7e 4c 00          	cmpl   $0x0,0x4c(%esi)
5177cc:	74 10                	je     0x5177de
5177ce:	6a 01                	push   $0x1
5177d0:	8d 4e 48             	lea    0x48(%esi),%ecx
5177d3:	51                   	push   %ecx
5177d4:	50                   	push   %eax
5177d5:	56                   	push   %esi
5177d6:	e8 85 02 01 00       	call   0x527a60
5177db:	83 c4 10             	add    $0x10,%esp
5177de:	5f                   	pop    %edi
5177df:	5e                   	pop    %esi
5177e0:	5d                   	pop    %ebp
5177e1:	c3                   	ret
5177e2:	8b 45 0c             	mov    0xc(%ebp),%eax
5177e5:	85 c0                	test   %eax,%eax
5177e7:	74 f5                	je     0x5177de
5177e9:	5f                   	pop    %edi
5177ea:	5e                   	pop    %esi
5177eb:	89 45 0c             	mov    %eax,0xc(%ebp)
5177ee:	89 55 08             	mov    %edx,0x8(%ebp)
5177f1:	5d                   	pop    %ebp
5177f2:	e9 b9 ef 00 00       	jmp    0x5267b0
5177f7:	cc                   	int3
5177f8:	cc                   	int3
5177f9:	cc                   	int3
5177fa:	cc                   	int3
5177fb:	cc                   	int3
5177fc:	cc                   	int3
5177fd:	cc                   	int3
5177fe:	cc                   	int3
5177ff:	cc                   	int3
517800:	55                   	push   %ebp
517801:	8b ec                	mov    %esp,%ebp
517803:	51                   	push   %ecx
517804:	53                   	push   %ebx
517805:	8b 5d 08             	mov    0x8(%ebp),%ebx
517808:	56                   	push   %esi
517809:	8b b3 e4 00 00 00    	mov    0xe4(%ebx),%esi
51780f:	85 f6                	test   %esi,%esi
517811:	0f 84 8d 00 00 00    	je     0x5178a4
517817:	8b 03                	mov    (%ebx),%eax
517819:	57                   	push   %edi
51781a:	ff 75 0c             	push   0xc(%ebp)
51781d:	0f bf 7e 2a          	movswl 0x2a(%esi),%edi
517821:	50                   	push   %eax
517822:	4f                   	dec    %edi
517823:	89 45 fc             	mov    %eax,-0x4(%ebp)
517826:	e8 05 9e 01 00       	call   0x531630
51782b:	83 c4 08             	add    $0x8,%esp
51782e:	89 45 08             	mov    %eax,0x8(%ebp)
517831:	85 c0                	test   %eax,%eax
517833:	74 6e                	je     0x5178a3
517835:	50                   	push   %eax
517836:	53                   	push   %ebx
517837:	e8 44 92 01 00       	call   0x530a80
51783c:	83 c4 08             	add    $0x8,%esp
51783f:	85 c0                	test   %eax,%eax
517841:	74 51                	je     0x517894
517843:	8b 46 04             	mov    0x4(%esi),%eax
517846:	8d 1c bf             	lea    (%edi,%edi,4),%ebx
517849:	8b 44 98 08          	mov    0x8(%eax,%ebx,4),%eax
51784d:	85 c0                	test   %eax,%eax
51784f:	74 0c                	je     0x51785d
517851:	50                   	push   %eax
517852:	ff 75 fc             	push   -0x4(%ebp)
517855:	e8 16 9b 00 00       	call   0x521370
51785a:	83 c4 08             	add    $0x8,%esp
51785d:	8b 46 04             	mov    0x4(%esi),%eax
517860:	8b 4d 08             	mov    0x8(%ebp),%ecx
517863:	89 4c 98 08          	mov    %ecx,0x8(%eax,%ebx,4)
517867:	8b 46 08             	mov    0x8(%esi),%eax
51786a:	85 c0                	test   %eax,%eax
51786c:	74 35                	je     0x5178a3
51786e:	66 90                	xchg   %ax,%ax
517870:	8b 48 04             	mov    0x4(%eax),%ecx
517873:	0f bf 09             	movswl (%ecx),%ecx
517876:	3b cf                	cmp    %edi,%ecx
517878:	75 0c                	jne    0x517886
51787a:	8b 4e 04             	mov    0x4(%esi),%ecx
51787d:	8b 50 20             	mov    0x20(%eax),%edx
517880:	8b 4c 99 08          	mov    0x8(%ecx,%ebx,4),%ecx
517884:	89 0a                	mov    %ecx,(%edx)
517886:	8b 40 14             	mov    0x14(%eax),%eax
517889:	85 c0                	test   %eax,%eax
51788b:	75 e3                	jne    0x517870
51788d:	5f                   	pop    %edi
51788e:	5e                   	pop    %esi
51788f:	5b                   	pop    %ebx
517890:	8b e5                	mov    %ebp,%esp
517892:	5d                   	pop    %ebp
517893:	c3                   	ret
517894:	8b 4d 08             	mov    0x8(%ebp),%ecx
517897:	51                   	push   %ecx
517898:	ff 75 fc             	push   -0x4(%ebp)
51789b:	e8 d0 9a 00 00       	call   0x521370
5178a0:	83 c4 08             	add    $0x8,%esp
5178a3:	5f                   	pop    %edi
5178a4:	5e                   	pop    %esi
5178a5:	5b                   	pop    %ebx
5178a6:	8b e5                	mov    %ebp,%esp
5178a8:	5d                   	pop    %ebp
5178a9:	c3                   	ret
5178aa:	cc                   	int3
5178ab:	cc                   	int3
5178ac:	cc                   	int3
5178ad:	cc                   	int3
5178ae:	cc                   	int3
5178af:	cc                   	int3
5178b0:	55                   	push   %ebp
5178b1:	8b ec                	mov    %esp,%ebp
5178b3:	83 ec 08             	sub    $0x8,%esp
5178b6:	56                   	push   %esi
5178b7:	8b 75 08             	mov    0x8(%ebp),%esi
5178ba:	57                   	push   %edi
5178bb:	8b be e4 00 00 00    	mov    0xe4(%esi),%edi
5178c1:	8b 16                	mov    (%esi),%edx
5178c3:	89 55 f8             	mov    %edx,-0x8(%ebp)
5178c6:	85 ff                	test   %edi,%edi
5178c8:	0f 84 bb 01 00 00    	je     0x517a89
5178ce:	0f bf 47 2a          	movswl 0x2a(%edi),%eax
5178d2:	40                   	inc    %eax
5178d3:	3b 42 74             	cmp    0x74(%edx),%eax
5178d6:	7e 16                	jle    0x5178ee
5178d8:	ff 37                	push   (%edi)
5178da:	68 60 9e 6b 00       	push   $0x6b9e60
5178df:	56                   	push   %esi
5178e0:	e8 7b b9 00 00       	call   0x523260
5178e5:	83 c4 0c             	add    $0xc,%esp
5178e8:	5f                   	pop    %edi
5178e9:	5e                   	pop    %esi
5178ea:	8b e5                	mov    %ebp,%esp
5178ec:	5d                   	pop    %ebp
5178ed:	c3                   	ret
5178ee:	8b 45 10             	mov    0x10(%ebp),%eax
5178f1:	53                   	push   %ebx
5178f2:	6a 00                	push   $0x0
5178f4:	8b 48 04             	mov    0x4(%eax),%ecx
5178f7:	8b 45 0c             	mov    0xc(%ebp),%eax
5178fa:	83 c1 02             	add    $0x2,%ecx
5178fd:	8b 40 04             	mov    0x4(%eax),%eax
517900:	03 c1                	add    %ecx,%eax
517902:	50                   	push   %eax
517903:	52                   	push   %edx
517904:	e8 d7 9a 00 00       	call   0x5213e0
517909:	8b d8                	mov    %eax,%ebx
51790b:	83 c4 0c             	add    $0xc,%esp
51790e:	85 db                	test   %ebx,%ebx
517910:	0f 84 72 01 00 00    	je     0x517a88
517916:	80 be c8 00 00 00 02 	cmpb   $0x2,0xc8(%esi)
51791d:	72 0d                	jb     0x51792c
51791f:	ff 75 0c             	push   0xc(%ebp)
517922:	53                   	push   %ebx
517923:	56                   	push   %esi
517924:	e8 27 05 02 00       	call   0x537e50
517929:	83 c4 0c             	add    $0xc,%esp
51792c:	8b 75 0c             	mov    0xc(%ebp),%esi
51792f:	ff 76 04             	push   0x4(%esi)
517932:	ff 36                	push   (%esi)
517934:	53                   	push   %ebx
517935:	e8 c6 b5 0c 00       	call   0x5e2f00
51793a:	8b 46 04             	mov    0x4(%esi),%eax
51793d:	53                   	push   %ebx
51793e:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
517942:	e8 99 ab 00 00       	call   0x5224e0
517947:	0f b7 57 2a          	movzwl 0x2a(%edi),%edx
51794b:	33 c9                	xor    %ecx,%ecx
51794d:	33 c0                	xor    %eax,%eax
51794f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
517952:	83 c4 10             	add    $0x10,%esp
517955:	66 3b c2             	cmp    %dx,%ax
517958:	7d 2f                	jge    0x517989
51795a:	8b 77 04             	mov    0x4(%edi),%esi
51795d:	0f 1f 00             	nopl   (%eax)
517960:	8b 06                	mov    (%esi),%eax
517962:	85 c0                	test   %eax,%eax
517964:	74 15                	je     0x51797b
517966:	50                   	push   %eax
517967:	53                   	push   %ebx
517968:	e8 c3 62 02 00       	call   0x53dc30
51796d:	83 c4 08             	add    $0x8,%esp
517970:	85 c0                	test   %eax,%eax
517972:	74 61                	je     0x5179d5
517974:	8b 4d fc             	mov    -0x4(%ebp),%ecx
517977:	0f b7 57 2a          	movzwl 0x2a(%edi),%edx
51797b:	41                   	inc    %ecx
51797c:	0f bf c2             	movswl %dx,%eax
51797f:	83 c6 14             	add    $0x14,%esi
517982:	89 4d fc             	mov    %ecx,-0x4(%ebp)
517985:	3b c8                	cmp    %eax,%ecx
517987:	7c d7                	jl     0x517960
517989:	f6 c2 07             	test   $0x7,%dl
51798c:	75 6d                	jne    0x5179fb
51798e:	0f bf c2             	movswl %dx,%eax
517991:	99                   	cltd
517992:	83 c0 08             	add    $0x8,%eax
517995:	8b c8                	mov    %eax,%ecx
517997:	83 d2 00             	adc    $0x0,%edx
51799a:	8b f2                	mov    %edx,%esi
51799c:	0f a4 ce 02          	shld   $0x2,%ecx,%esi
5179a0:	6a 00                	push   $0x0
5179a2:	c1 e1 02             	shl    $0x2,%ecx
5179a5:	03 c1                	add    %ecx,%eax
5179a7:	13 d6                	adc    %esi,%edx
5179a9:	8b 75 f8             	mov    -0x8(%ebp),%esi
5179ac:	0f a4 c2 02          	shld   $0x2,%eax,%edx
5179b0:	c1 e0 02             	shl    $0x2,%eax
5179b3:	50                   	push   %eax
5179b4:	ff 77 04             	push   0x4(%edi)
5179b7:	56                   	push   %esi
5179b8:	e8 a3 9b 00 00       	call   0x521560
5179bd:	83 c4 10             	add    $0x10,%esp
5179c0:	85 c0                	test   %eax,%eax
5179c2:	75 34                	jne    0x5179f8
5179c4:	53                   	push   %ebx
5179c5:	56                   	push   %esi
5179c6:	e8 a5 99 00 00       	call   0x521370
5179cb:	83 c4 08             	add    $0x8,%esp
5179ce:	5b                   	pop    %ebx
5179cf:	5f                   	pop    %edi
5179d0:	5e                   	pop    %esi
5179d1:	8b e5                	mov    %ebp,%esp
5179d3:	5d                   	pop    %ebp
5179d4:	c3                   	ret
5179d5:	8b 45 08             	mov    0x8(%ebp),%eax
5179d8:	53                   	push   %ebx
5179d9:	68 78 9e 6b 00       	push   $0x6b9e78
5179de:	50                   	push   %eax
5179df:	e8 7c b8 00 00       	call   0x523260
5179e4:	8b 75 f8             	mov    -0x8(%ebp),%esi
5179e7:	53                   	push   %ebx
5179e8:	56                   	push   %esi
5179e9:	e8 82 99 00 00       	call   0x521370
5179ee:	83 c4 14             	add    $0x14,%esp
5179f1:	5b                   	pop    %ebx
5179f2:	5f                   	pop    %edi
5179f3:	5e                   	pop    %esi
5179f4:	8b e5                	mov    %ebp,%esp
5179f6:	5d                   	pop    %ebp
5179f7:	c3                   	ret
5179f8:	89 47 04             	mov    %eax,0x4(%edi)
5179fb:	0f bf 47 2a          	movswl 0x2a(%edi),%eax
5179ff:	0f 57 c0             	xorps  %xmm0,%xmm0
517a02:	8b 55 10             	mov    0x10(%ebp),%edx
517a05:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
517a08:	8b 47 04             	mov    0x4(%edi),%eax
517a0b:	0f 11 04 88          	movups %xmm0,(%eax,%ecx,4)
517a0f:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
517a16:	00
517a17:	89 1c 88             	mov    %ebx,(%eax,%ecx,4)