5037c8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5037cb:	33 cd                	xor    %ebp,%ecx
5037cd:	e8 08 dd 0d 00       	call   0x5e14da
5037d2:	8b e5                	mov    %ebp,%esp
5037d4:	5d                   	pop    %ebp
5037d5:	c3                   	ret
5037d6:	8b 43 20             	mov    0x20(%ebx),%eax
5037d9:	8d 0c d2             	lea    (%edx,%edx,8),%ecx
5037dc:	c1 e1 03             	shl    $0x3,%ecx
5037df:	89 45 dc             	mov    %eax,-0x24(%ebp)
5037e2:	83 c0 08             	add    $0x8,%eax
5037e5:	03 c1                	add    %ecx,%eax
5037e7:	89 4d bc             	mov    %ecx,-0x44(%ebp)
5037ea:	83 7b 44 00          	cmpl   $0x0,0x44(%ebx)
5037ee:	89 45 e0             	mov    %eax,-0x20(%ebp)
5037f1:	8b 48 2c             	mov    0x2c(%eax),%ecx
5037f4:	89 4d b0             	mov    %ecx,-0x50(%ebp)
5037f7:	8b 48 14             	mov    0x14(%eax),%ecx
5037fa:	75 c9                	jne    0x5037c5
5037fc:	83 79 44 00          	cmpl   $0x0,0x44(%ecx)
503800:	75 c3                	jne    0x5037c5
503802:	8b 41 3c             	mov    0x3c(%ecx),%eax
503805:	57                   	push   %edi
503806:	8b 79 20             	mov    0x20(%ecx),%edi
503809:	85 c0                	test   %eax,%eax
50380b:	74 10                	je     0x50381d
50380d:	83 7b 3c 00          	cmpl   $0x0,0x3c(%ebx)
503811:	75 17                	jne    0x50382a
503813:	85 c0                	test   %eax,%eax
503815:	74 06                	je     0x50381d
503817:	83 78 10 00          	cmpl   $0x0,0x10(%eax)
50381b:	75 0d                	jne    0x50382a
50381d:	f7 43 04 00 01 00 00 	testl  $0x100,0x4(%ebx)
503824:	74 16                	je     0x50383c
503826:	85 c0                	test   %eax,%eax
503828:	74 12                	je     0x50383c
50382a:	5f                   	pop    %edi
50382b:	33 c0                	xor    %eax,%eax
50382d:	5b                   	pop    %ebx
50382e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
503831:	33 cd                	xor    %ebp,%ecx
503833:	e8 a2 dc 0d 00       	call   0x5e14da
503838:	8b e5                	mov    %ebp,%esp
50383a:	5d                   	pop    %ebp
50383b:	c3                   	ret
50383c:	56                   	push   %esi
50383d:	8b 37                	mov    (%edi),%esi
50383f:	85 f6                	test   %esi,%esi
503841:	74 47                	je     0x50388a
503843:	f6 41 04 01          	testb  $0x1,0x4(%ecx)
503847:	75 41                	jne    0x50388a
503849:	8b 55 14             	mov    0x14(%ebp),%edx
50384c:	85 c0                	test   %eax,%eax
50384e:	74 0f                	je     0x50385f
503850:	8b 7d dc             	mov    -0x24(%ebp),%edi
503853:	83 3f 01             	cmpl   $0x1,(%edi)
503856:	8b 79 20             	mov    0x20(%ecx),%edi
503859:	7f 2f                	jg     0x50388a
50385b:	85 d2                	test   %edx,%edx
50385d:	75 2b                	jne    0x50388a
50385f:	83 7b 30 00          	cmpl   $0x0,0x30(%ebx)
503863:	74 06                	je     0x50386b
503865:	83 79 30 00          	cmpl   $0x0,0x30(%ecx)
503869:	75 1f                	jne    0x50388a
50386b:	85 d2                	test   %edx,%edx
50386d:	74 06                	je     0x503875
50386f:	83 79 30 00          	cmpl   $0x0,0x30(%ecx)
503873:	75 15                	jne    0x50388a
503875:	85 c0                	test   %eax,%eax
503877:	74 24                	je     0x50389d
503879:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
50387d:	75 0b                	jne    0x50388a
50387f:	85 c0                	test   %eax,%eax
503881:	74 1a                	je     0x50389d
503883:	8b 43 04             	mov    0x4(%ebx),%eax
503886:	a8 01                	test   $0x1,%al
503888:	74 16                	je     0x5038a0
50388a:	5e                   	pop    %esi
50388b:	5f                   	pop    %edi
50388c:	33 c0                	xor    %eax,%eax
50388e:	5b                   	pop    %ebx
50388f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
503892:	33 cd                	xor    %ebp,%ecx
503894:	e8 41 dc 0d 00       	call   0x5e14da
503899:	8b e5                	mov    %ebp,%esp
50389b:	5d                   	pop    %ebp
50389c:	c3                   	ret
50389d:	8b 43 04             	mov    0x4(%ebx),%eax
5038a0:	f7 41 04 00 20 00 00 	testl  $0x2000,0x4(%ecx)
5038a7:	75 e1                	jne    0x50388a
5038a9:	8b 5d e0             	mov    -0x20(%ebp),%ebx
5038ac:	f6 43 24 20          	testb  $0x20,0x24(%ebx)
5038b0:	8b 5d c0             	mov    -0x40(%ebp),%ebx
5038b3:	74 1f                	je     0x5038d4
5038b5:	c7 45 c4 01 00 00 00 	movl   $0x1,-0x3c(%ebp)
5038bc:	83 fe 01             	cmp    $0x1,%esi
5038bf:	7f c9                	jg     0x50388a
5038c1:	85 d2                	test   %edx,%edx
5038c3:	75 c5                	jne    0x50388a
5038c5:	8b 47 18             	mov    0x18(%edi),%eax
5038c8:	39 50 38             	cmp    %edx,0x38(%eax)
5038cb:	75 bd                	jne    0x50388a
5038cd:	8b 43 04             	mov    0x4(%ebx),%eax
5038d0:	a8 01                	test   $0x1,%al
5038d2:	75 b6                	jne    0x50388a
5038d4:	83 79 34 00          	cmpl   $0x0,0x34(%ecx)
5038d8:	8d 79 34             	lea    0x34(%ecx),%edi
5038db:	74 67                	je     0x503944
5038dd:	83 79 30 00          	cmpl   $0x0,0x30(%ecx)
5038e1:	75 a7                	jne    0x50388a
5038e3:	85 d2                	test   %edx,%edx
5038e5:	75 a3                	jne    0x50388a
5038e7:	a8 01                	test   $0x1,%al
5038e9:	75 9f                	jne    0x50388a
5038eb:	8b 45 dc             	mov    -0x24(%ebp),%eax
5038ee:	83 38 01             	cmpl   $0x1,(%eax)
5038f1:	75 97                	jne    0x50388a
5038f3:	f6 41 04 09          	testb  $0x9,0x4(%ecx)
5038f7:	75 91                	jne    0x50388a
5038f9:	8b 51 34             	mov    0x34(%ecx),%edx
5038fc:	85 d2                	test   %edx,%edx
5038fe:	74 05                	je     0x503905
503900:	80 39 85             	cmpb   $0x85,(%ecx)
503903:	75 85                	jne    0x50388a
503905:	8b 41 20             	mov    0x20(%ecx),%eax
503908:	83 38 01             	cmpl   $0x1,(%eax)
50390b:	0f 8c 79 ff ff ff    	jl     0x50388a
503911:	83 79 44 00          	cmpl   $0x0,0x44(%ecx)
503915:	0f 85 6f ff ff ff    	jne    0x50388a
50391b:	8b ca                	mov    %edx,%ecx
50391d:	85 c9                	test   %ecx,%ecx
50391f:	75 d2                	jne    0x5038f3
503921:	8b 73 30             	mov    0x30(%ebx),%esi
503924:	85 f6                	test   %esi,%esi
503926:	74 1c                	je     0x503944
503928:	8b 16                	mov    (%esi),%edx
50392a:	85 d2                	test   %edx,%edx
50392c:	7e 16                	jle    0x503944
50392e:	33 c0                	xor    %eax,%eax
503930:	66 83 7c 06 14 00    	cmpw   $0x0,0x14(%esi,%eax,1)
503936:	0f 84 4e ff ff ff    	je     0x50388a
50393c:	41                   	inc    %ecx
50393d:	83 c0 14             	add    $0x14,%eax
503940:	3b ca                	cmp    %edx,%ecx
503942:	7c ec                	jl     0x503930
503944:	8b 45 e0             	mov    -0x20(%ebp),%eax
503947:	8b 75 cc             	mov    -0x34(%ebp),%esi
50394a:	6a 00                	push   $0x0
50394c:	6a 00                	push   $0x0
50394e:	8b 40 08             	mov    0x8(%eax),%eax
503951:	6a 00                	push   $0x0
503953:	6a 15                	push   $0x15
503955:	56                   	push   %esi
503956:	89 86 f0 00 00 00    	mov    %eax,0xf0(%esi)
50395c:	e8 3f 5e 01 00       	call   0x5197a0
503961:	8b 45 d8             	mov    -0x28(%ebp),%eax
503964:	83 c4 14             	add    $0x14,%esp
503967:	89 86 f0 00 00 00    	mov    %eax,0xf0(%esi)
50396d:	8b 07                	mov    (%edi),%eax
50396f:	89 45 d8             	mov    %eax,-0x28(%ebp)
503972:	85 c0                	test   %eax,%eax
503974:	74 7d                	je     0x5039f3
503976:	8b 43 34             	mov    0x34(%ebx),%eax
503979:	8b 7b 30             	mov    0x30(%ebx),%edi
50397c:	8b 73 3c             	mov    0x3c(%ebx),%esi
50397f:	6a 00                	push   $0x0
503981:	53                   	push   %ebx
503982:	ff 75 d4             	push   -0x2c(%ebp)
503985:	89 45 d0             	mov    %eax,-0x30(%ebp)
503988:	c7 43 30 00 00 00 00 	movl   $0x0,0x30(%ebx)
50398f:	c7 43 20 00 00 00 00 	movl   $0x0,0x20(%ebx)
503996:	c7 43 34 00 00 00 00 	movl   $0x0,0x34(%ebx)
50399d:	c7 43 3c 00 00 00 00 	movl   $0x0,0x3c(%ebx)
5039a4:	e8 37 88 03 00       	call   0x53c1e0
5039a9:	8b 4d dc             	mov    -0x24(%ebp),%ecx
5039ac:	83 c4 0c             	add    $0xc,%esp
5039af:	89 73 3c             	mov    %esi,0x3c(%ebx)
5039b2:	89 7b 30             	mov    %edi,0x30(%ebx)
5039b5:	89 4b 20             	mov    %ecx,0x20(%ebx)
5039b8:	c6 03 85             	movb   $0x85,(%ebx)
5039bb:	85 c0                	test   %eax,%eax
5039bd:	75 05                	jne    0x5039c4
5039bf:	8b 45 d0             	mov    -0x30(%ebp),%eax
5039c2:	eb 10                	jmp    0x5039d4
5039c4:	8b 4d d0             	mov    -0x30(%ebp),%ecx
5039c7:	89 48 34             	mov    %ecx,0x34(%eax)
5039ca:	85 c9                	test   %ecx,%ecx
5039cc:	74 03                	je     0x5039d1
5039ce:	89 41 38             	mov    %eax,0x38(%ecx)
5039d1:	89 58 38             	mov    %ebx,0x38(%eax)
5039d4:	8b 7d d4             	mov    -0x2c(%ebp),%edi
5039d7:	89 43 34             	mov    %eax,0x34(%ebx)
5039da:	80 7f 51 00          	cmpb   $0x0,0x51(%edi)
5039de:	0f 85 a8 02 00 00    	jne    0x503c8c
5039e4:	8b 45 d8             	mov    -0x28(%ebp),%eax
5039e7:	8b 40 34             	mov    0x34(%eax),%eax
5039ea:	89 45 d8             	mov    %eax,-0x28(%ebp)
5039ed:	85 c0                	test   %eax,%eax
5039ef:	75 85                	jne    0x503976
5039f1:	eb 03                	jmp    0x5039f6
5039f3:	8b 7d d4             	mov    -0x2c(%ebp),%edi
5039f6:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5039f9:	8b 41 14             	mov    0x14(%ecx),%eax
5039fc:	8b f0                	mov    %eax,%esi
5039fe:	89 45 ac             	mov    %eax,-0x54(%ebp)
503a01:	8b 41 04             	mov    0x4(%ecx),%eax
503a04:	89 75 d8             	mov    %esi,-0x28(%ebp)
503a07:	85 c0                	test   %eax,%eax
503a09:	74 0d                	je     0x503a18
503a0b:	50                   	push   %eax
503a0c:	57                   	push   %edi
503a0d:	e8 5e d9 01 00       	call   0x521370
503a12:	8b 4d e0             	mov    -0x20(%ebp),%ecx
503a15:	83 c4 08             	add    $0x8,%esp
503a18:	8b 41 08             	mov    0x8(%ecx),%eax
503a1b:	85 c0                	test   %eax,%eax
503a1d:	74 0d                	je     0x503a2c
503a1f:	50                   	push   %eax
503a20:	57                   	push   %edi
503a21:	e8 4a d9 01 00       	call   0x521370
503a26:	8b 4d e0             	mov    -0x20(%ebp),%ecx
503a29:	83 c4 08             	add    $0x8,%esp
503a2c:	8b 41 0c             	mov    0xc(%ecx),%eax
503a2f:	85 c0                	test   %eax,%eax
503a31:	74 0d                	je     0x503a40
503a33:	50                   	push   %eax
503a34:	57                   	push   %edi
503a35:	e8 36 d9 01 00       	call   0x521370
503a3a:	8b 4d e0             	mov    -0x20(%ebp),%ecx
503a3d:	83 c4 08             	add    $0x8,%esp
503a40:	8b 51 10             	mov    0x10(%ecx),%edx
503a43:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
503a4a:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
503a51:	c7 41 0c 00 00 00 00 	movl   $0x0,0xc(%ecx)
503a58:	c7 41 14 00 00 00 00 	movl   $0x0,0x14(%ecx)
503a5f:	85 d2                	test   %edx,%edx
503a61:	74 32                	je     0x503a95
503a63:	8b 42 20             	mov    0x20(%edx),%eax
503a66:	83 f8 01             	cmp    $0x1,%eax
503a69:	75 1f                	jne    0x503a8a
503a6b:	8b 4d cc             	mov    -0x34(%ebp),%ecx
503a6e:	8b 41 74             	mov    0x74(%ecx),%eax
503a71:	85 c0                	test   %eax,%eax
503a73:	0f 45 c8             	cmovne %eax,%ecx
503a76:	8b 81 00 01 00 00    	mov    0x100(%ecx),%eax
503a7c:	89 42 4c             	mov    %eax,0x4c(%edx)
503a7f:	89 91 00 01 00 00    	mov    %edx,0x100(%ecx)
503a85:	8b 4d e0             	mov    -0x20(%ebp),%ecx
503a88:	eb 04                	jmp    0x503a8e
503a8a:	48                   	dec    %eax
503a8b:	89 42 20             	mov    %eax,0x20(%edx)
503a8e:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
503a95:	8b 46 20             	mov    0x20(%esi),%eax
503a98:	8b 7b 20             	mov    0x20(%ebx),%edi
503a9b:	c6 45 e7 00          	movb   $0x0,-0x19(%ebp)
503a9f:	89 45 b4             	mov    %eax,-0x4c(%ebp)
503aa2:	8b 08                	mov    (%eax),%ecx
503aa4:	89 4d dc             	mov    %ecx,-0x24(%ebp)
503aa7:	89 7d d0             	mov    %edi,-0x30(%ebp)
503aaa:	85 ff                	test   %edi,%edi
503aac:	74 0b                	je     0x503ab9
503aae:	8b 45 e0             	mov    -0x20(%ebp),%eax
503ab1:	8a 40 24             	mov    0x24(%eax),%al
503ab4:	88 45 e7             	mov    %al,-0x19(%ebp)
503ab7:	eb 5d                	jmp    0x503b16
503ab9:	8b 45 cc             	mov    -0x34(%ebp),%eax
503abc:	6a 00                	push   $0x0
503abe:	6a 50                	push   $0x50
503ac0:	ff 30                	push   (%eax)
503ac2:	e8 19 d9 01 00       	call   0x5213e0
503ac7:	8b f8                	mov    %eax,%edi
503ac9:	89 45 d0             	mov    %eax,-0x30(%ebp)
503acc:	83 c4 0c             	add    $0xc,%esp
503acf:	85 ff                	test   %edi,%edi
503ad1:	0f 84 a7 01 00 00    	je     0x503c7e
503ad7:	6a 48                	push   $0x48
503ad9:	8d 47 08             	lea    0x8(%edi),%eax
503adc:	c7 47 04 01 00 00 00 	movl   $0x1,0x4(%edi)
503ae3:	6a 00                	push   $0x0
503ae5:	50                   	push   %eax
503ae6:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
503aec:	e8 0f ff 0d 00       	call   0x5e3a00
503af1:	8b 4d dc             	mov    -0x24(%ebp),%ecx
503af4:	83 c4 0c             	add    $0xc,%esp
503af7:	c7 47 34 ff ff ff ff 	movl   $0xffffffff,0x34(%edi)
503afe:	8b 07                	mov    (%edi),%eax
503b00:	8d 04 c0             	lea    (%eax,%eax,8),%eax
503b03:	c7 44 c7 c8 00 00 00 	movl   $0x0,-0x38(%edi,%eax,8)
503b0a:	00
503b0b:	c7 44 c7 c4 00 00 00 	movl   $0x0,-0x3c(%edi,%eax,8)
503b12:	00
503b13:	89 7b 20             	mov    %edi,0x20(%ebx)
503b16:	83 f9 01             	cmp    $0x1,%ecx
503b19:	7e 28                	jle    0x503b43
503b1b:	8b 45 b8             	mov    -0x48(%ebp),%eax
503b1e:	40                   	inc    %eax
503b1f:	50                   	push   %eax
503b20:	8d 41 ff             	lea    -0x1(%ecx),%eax
503b23:	50                   	push   %eax
503b24:	57                   	push   %edi
503b25:	ff 75 cc             	push   -0x34(%ebp)
503b28:	e8 53 96 03 00       	call   0x53d180
503b2d:	8b f8                	mov    %eax,%edi
503b2f:	83 c4 10             	add    $0x10,%esp
503b32:	89 7d d0             	mov    %edi,-0x30(%ebp)
503b35:	85 ff                	test   %edi,%edi
503b37:	0f 84 41 01 00 00    	je     0x503c7e
503b3d:	8b 4d dc             	mov    -0x24(%ebp),%ecx
503b40:	89 7b 20             	mov    %edi,0x20(%ebx)
503b43:	85 c9                	test   %ecx,%ecx
503b45:	7e 73                	jle    0x503bba
503b47:	8b 45 bc             	mov    -0x44(%ebp),%eax
503b4a:	8b 75 b4             	mov    -0x4c(%ebp),%esi
503b4d:	83 c0 08             	add    $0x8,%eax
503b50:	8b 5d dc             	mov    -0x24(%ebp),%ebx
503b53:	83 c6 08             	add    $0x8,%esi
503b56:	03 f8                	add    %eax,%edi
503b58:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
503b5f:	00
503b60:	ff 77 34             	push   0x34(%edi)
503b63:	ff 75 d4             	push   -0x2c(%ebp)
503b66:	e8 f5 a1 02 00       	call   0x52dd60
503b6b:	0f 10 06             	movups (%esi),%xmm0
503b6e:	6a 48                	push   $0x48
503b70:	6a 00                	push   $0x0
503b72:	0f 11 07             	movups %xmm0,(%edi)
503b75:	56                   	push   %esi
503b76:	0f 10 46 10          	movups 0x10(%esi),%xmm0
503b7a:	0f 11 47 10          	movups %xmm0,0x10(%edi)
503b7e:	0f 10 46 20          	movups 0x20(%esi),%xmm0
503b82:	0f 11 47 20          	movups %xmm0,0x20(%edi)
503b86:	0f 10 46 30          	movups 0x30(%esi),%xmm0
503b8a:	0f 11 47 30          	movups %xmm0,0x30(%edi)
503b8e:	f3 0f 7e 46 40       	movq   0x40(%esi),%xmm0
503b93:	66 0f d6 47 40       	movq   %xmm0,0x40(%edi)
503b98:	8b 46 2c             	mov    0x2c(%esi),%eax
503b9b:	89 45 c8             	mov    %eax,-0x38(%ebp)
503b9e:	e8 5d fe 0d 00       	call   0x5e3a00
503ba3:	83 c4 14             	add    $0x14,%esp
503ba6:	8d 7f 48             	lea    0x48(%edi),%edi
503ba9:	83 c6 48             	add    $0x48,%esi
503bac:	83 eb 01             	sub    $0x1,%ebx
503baf:	75 af                	jne    0x503b60
503bb1:	8b 5d c0             	mov    -0x40(%ebp),%ebx
503bb4:	8b 7d d0             	mov    -0x30(%ebp),%edi
503bb7:	8b 75 d8             	mov    -0x28(%ebp),%esi
503bba:	8b 4d bc             	mov    -0x44(%ebp),%ecx
503bbd:	8a 45 e7             	mov    -0x19(%ebp),%al
503bc0:	88 44 39 2c          	mov    %al,0x2c(%ecx,%edi,1)
503bc4:	8b 56 30             	mov    0x30(%esi),%edx