52a736:	e9 05 01 00 00       	jmp    0x52a840
52a73b:	8b 4d dc             	mov    -0x24(%ebp),%ecx
52a73e:	8b 41 74             	mov    0x74(%ecx),%eax
52a741:	85 c0                	test   %eax,%eax
52a743:	0f 45 c8             	cmovne %eax,%ecx
52a746:	c6 41 15 01          	movb   $0x1,0x15(%ecx)
52a74a:	ff 33                	push   (%ebx)
52a74c:	8b 45 d8             	mov    -0x28(%ebp),%eax
52a74f:	ff 30                	push   (%eax)
52a751:	68 24 9d 6b 00       	push   $0x6b9d24
52a756:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
52a75c:	e8 df 67 00 00       	call   0x530f40
52a761:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52a764:	83 c4 10             	add    $0x10,%esp
52a767:	8b d0                	mov    %eax,%edx
52a769:	8b 5d c0             	mov    -0x40(%ebp),%ebx
52a76c:	89 55 a8             	mov    %edx,-0x58(%ebp)
52a76f:	39 4e 70             	cmp    %ecx,0x70(%esi)
52a772:	7f 17                	jg     0x52a78b
52a774:	53                   	push   %ebx
52a775:	57                   	push   %edi
52a776:	68 13 05 00 00       	push   $0x513
52a77b:	6a 43                	push   $0x43
52a77d:	56                   	push   %esi
52a77e:	e8 7d bd fd ff       	call   0x506500
52a783:	8b 55 a8             	mov    -0x58(%ebp),%edx
52a786:	83 c4 14             	add    $0x14,%esp
52a789:	eb 2b                	jmp    0x52a7b6
52a78b:	8d 41 01             	lea    0x1(%ecx),%eax
52a78e:	89 46 6c             	mov    %eax,0x6c(%esi)
52a791:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52a794:	8b 46 68             	mov    0x68(%esi),%eax
52a797:	c7 04 88 43 00 00 00 	movl   $0x43,(%eax,%ecx,4)
52a79e:	c7 44 88 04 13 05 00 	movl   $0x513,0x4(%eax,%ecx,4)
52a7a5:	00
52a7a6:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
52a7aa:	89 5c 88 0c          	mov    %ebx,0xc(%eax,%ecx,4)
52a7ae:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52a7b5:	00
52a7b6:	8b 06                	mov    (%esi),%eax
52a7b8:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52a7bc:	74 0e                	je     0x52a7cc
52a7be:	52                   	push   %edx
52a7bf:	6a f9                	push   $0xfffffff9
52a7c1:	50                   	push   %eax
52a7c2:	e8 e9 94 fd ff       	call   0x503cb0
52a7c7:	83 c4 0c             	add    $0xc,%esp
52a7ca:	eb 12                	jmp    0x52a7de
52a7cc:	8b 46 6c             	mov    0x6c(%esi),%eax
52a7cf:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52a7d2:	8b 46 68             	mov    0x68(%esi),%eax
52a7d5:	c6 44 88 ed f9       	movb   $0xf9,-0x13(%eax,%ecx,4)
52a7da:	89 54 88 fc          	mov    %edx,-0x4(%eax,%ecx,4)
52a7de:	8b 46 6c             	mov    0x6c(%esi),%eax
52a7e1:	85 c0                	test   %eax,%eax
52a7e3:	7e 5b                	jle    0x52a840
52a7e5:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52a7e8:	ba 01 00 00 00       	mov    $0x1,%edx
52a7ed:	8b 46 68             	mov    0x68(%esi),%eax
52a7f0:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
52a7f5:	eb 49                	jmp    0x52a840
52a7f7:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52a7fa:	39 4e 70             	cmp    %ecx,0x70(%esi)
52a7fd:	7f 13                	jg     0x52a812
52a7ff:	6a 00                	push   $0x0
52a801:	ff 75 2c             	push   0x2c(%ebp)
52a804:	52                   	push   %edx
52a805:	6a 32                	push   $0x32
52a807:	56                   	push   %esi
52a808:	e8 f3 bc fd ff       	call   0x506500
52a80d:	83 c4 14             	add    $0x14,%esp
52a810:	eb 2e                	jmp    0x52a840
52a812:	8d 41 01             	lea    0x1(%ecx),%eax
52a815:	89 46 6c             	mov    %eax,0x6c(%esi)
52a818:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52a81b:	8b 46 68             	mov    0x68(%esi),%eax
52a81e:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
52a822:	8b 55 2c             	mov    0x2c(%ebp),%edx
52a825:	c7 04 88 32 00 00 00 	movl   $0x32,(%eax,%ecx,4)
52a82c:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52a830:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52a837:	00
52a838:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52a83f:	00
52a840:	8b 55 c8             	mov    -0x38(%ebp),%edx
52a843:	8b 45 d4             	mov    -0x2c(%ebp),%eax
52a846:	8b 5d cc             	mov    -0x34(%ebp),%ebx
52a849:	8b 7d b4             	mov    -0x4c(%ebp),%edi
52a84c:	43                   	inc    %ebx
52a84d:	83 c7 14             	add    $0x14,%edi
52a850:	89 5d cc             	mov    %ebx,-0x34(%ebp)
52a853:	8b cb                	mov    %ebx,%ecx
52a855:	89 7d b4             	mov    %edi,-0x4c(%ebp)
52a858:	3b 5d 80             	cmp    -0x80(%ebp),%ebx
52a85b:	0f 8c 9f fd ff ff    	jl     0x52a600
52a861:	8b 5d 80             	mov    -0x80(%ebp),%ebx
52a864:	8b 7d bc             	mov    -0x44(%ebp),%edi
52a867:	85 c0                	test   %eax,%eax
52a869:	75 04                	jne    0x52a86f
52a86b:	85 ff                	test   %edi,%edi
52a86d:	74 3d                	je     0x52a8ac
52a86f:	85 d2                	test   %edx,%edx
52a871:	75 39                	jne    0x52a8ac
52a873:	ba 01 00 00 00       	mov    $0x1,%edx
52a878:	89 55 c8             	mov    %edx,-0x38(%ebp)
52a87b:	85 ff                	test   %edi,%edi
52a87d:	0f 8e 64 fd ff ff    	jle    0x52a5e7
52a883:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52a886:	f6 41 24 60          	testb  $0x60,0x24(%ecx)
52a88a:	0f 84 57 fd ff ff    	je     0x52a5e7
52a890:	8b 45 1c             	mov    0x1c(%ebp),%eax
52a893:	51                   	push   %ecx
52a894:	40                   	inc    %eax
52a895:	50                   	push   %eax
52a896:	ff 75 dc             	push   -0x24(%ebp)
52a899:	e8 22 53 ff ff       	call   0x51fbc0
52a89e:	8b 55 c8             	mov    -0x38(%ebp),%edx
52a8a1:	83 c4 0c             	add    $0xc,%esp
52a8a4:	8b 45 d4             	mov    -0x2c(%ebp),%eax
52a8a7:	e9 3b fd ff ff       	jmp    0x52a5e7
52a8ac:	8b 7d dc             	mov    -0x24(%ebp),%edi
52a8af:	8b 5d d8             	mov    -0x28(%ebp),%ebx
52a8b2:	8b 53 18             	mov    0x18(%ebx),%edx
52a8b5:	89 55 bc             	mov    %edx,-0x44(%ebp)
52a8b8:	85 d2                	test   %edx,%edx
52a8ba:	0f 84 6b 02 00 00    	je     0x52ab2b
52a8c0:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
52a8c6:	8b 40 20             	mov    0x20(%eax),%eax
52a8c9:	25 00 02 00 00       	and    $0x200,%eax
52a8ce:	83 c8 00             	or     $0x0,%eax
52a8d1:	0f 85 54 02 00 00    	jne    0x52ab2b
52a8d7:	8b 45 1c             	mov    0x1c(%ebp),%eax
52a8da:	f7 d0                	not    %eax
52a8dc:	89 47 34             	mov    %eax,0x34(%edi)
52a8df:	8a 45 28             	mov    0x28(%ebp),%al
52a8e2:	0f b6 d8             	movzbl %al,%ebx
52a8e5:	3c 0b                	cmp    $0xb,%al
52a8e7:	75 05                	jne    0x52a8ee
52a8e9:	bb 02 00 00 00       	mov    $0x2,%ebx
52a8ee:	33 c9                	xor    %ecx,%ecx
52a8f0:	89 4d cc             	mov    %ecx,-0x34(%ebp)
52a8f3:	39 0a                	cmp    %ecx,(%edx)
52a8f5:	0f 8e 26 02 00 00    	jle    0x52ab21
52a8fb:	8d 42 08             	lea    0x8(%edx),%eax
52a8fe:	c7 45 a8 fd ff 00 00 	movl   $0xfffd,-0x58(%ebp)
52a905:	89 45 9c             	mov    %eax,-0x64(%ebp)
52a908:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
52a90f:	00
52a910:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
52a914:	8b 78 fc             	mov    -0x4(%eax),%edi
52a917:	74 57                	je     0x52a970
52a919:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
52a91c:	0f 57 c0             	xorps  %xmm0,%xmm0
52a91f:	33 c0                	xor    %eax,%eax
52a921:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
52a928:	66 0f d6 45 f0       	movq   %xmm0,-0x10(%ebp)
52a92d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
52a930:	8b 4d cc             	mov    -0x34(%ebp),%ecx
52a933:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
52a937:	0f 11 45 e0          	movups %xmm0,-0x20(%ebp)
52a93b:	c7 45 e4 90 80 4f 00 	movl   $0x4f8090,-0x1c(%ebp)
52a942:	85 ff                	test   %edi,%edi
52a944:	74 17                	je     0x52a95d
52a946:	8d 45 e0             	lea    -0x20(%ebp),%eax
52a949:	57                   	push   %edi
52a94a:	50                   	push   %eax
52a94b:	e8 60 56 03 00       	call   0x55ffb0
52a950:	66 8b 45 f4          	mov    -0xc(%ebp),%ax
52a954:	83 c4 08             	add    $0x8,%esp
52a957:	8b 4d cc             	mov    -0x34(%ebp),%ecx
52a95a:	8b 55 bc             	mov    -0x44(%ebp),%edx
52a95d:	80 7d 24 00          	cmpb   $0x0,0x24(%ebp)
52a961:	75 04                	jne    0x52a967
52a963:	66 23 45 a8          	and    -0x58(%ebp),%ax
52a967:	66 85 c0             	test   %ax,%ax
52a96a:	0f 84 99 01 00 00    	je     0x52ab09
52a970:	8b 4d dc             	mov    -0x24(%ebp),%ecx
52a973:	6a 10                	push   $0x10
52a975:	ff 49 38             	decl   0x38(%ecx)
52a978:	8b 41 38             	mov    0x38(%ecx),%eax
52a97b:	50                   	push   %eax
52a97c:	57                   	push   %edi
52a97d:	51                   	push   %ecx
52a97e:	89 45 a0             	mov    %eax,-0x60(%ebp)
52a981:	e8 ea c4 ff ff       	call   0x526e70
52a986:	83 c4 10             	add    $0x10,%esp
52a989:	83 fb 04             	cmp    $0x4,%ebx
52a98c:	75 56                	jne    0x52a9e4
52a98e:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52a991:	39 4e 70             	cmp    %ecx,0x70(%esi)
52a994:	7f 17                	jg     0x52a9ad
52a996:	6a 00                	push   $0x0
52a998:	ff 75 2c             	push   0x2c(%ebp)
52a99b:	6a 00                	push   $0x0
52a99d:	6a 0b                	push   $0xb
52a99f:	56                   	push   %esi
52a9a0:	e8 5b bb fd ff       	call   0x506500
52a9a5:	83 c4 14             	add    $0x14,%esp
52a9a8:	e9 30 01 00 00       	jmp    0x52aadd
52a9ad:	8b 55 2c             	mov    0x2c(%ebp),%edx
52a9b0:	8d 41 01             	lea    0x1(%ecx),%eax
52a9b3:	89 46 6c             	mov    %eax,0x6c(%esi)
52a9b6:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52a9b9:	8b 46 68             	mov    0x68(%esi),%eax
52a9bc:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
52a9c3:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
52a9ca:	00
52a9cb:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52a9cf:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52a9d6:	00
52a9d7:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52a9de:	00
52a9df:	e9 f9 00 00 00       	jmp    0x52aadd
52a9e4:	8b 45 9c             	mov    -0x64(%ebp),%eax
52a9e7:	8b 00                	mov    (%eax),%eax
52a9e9:	89 45 c0             	mov    %eax,-0x40(%ebp)
52a9ec:	85 c0                	test   %eax,%eax
52a9ee:	75 08                	jne    0x52a9f8
52a9f0:	8b 45 d8             	mov    -0x28(%ebp),%eax
52a9f3:	8b 00                	mov    (%eax),%eax
52a9f5:	89 45 c0             	mov    %eax,-0x40(%ebp)
52a9f8:	8b 4d dc             	mov    -0x24(%ebp),%ecx
52a9fb:	83 fb 05             	cmp    $0x5,%ebx
52a9fe:	b8 02 00 00 00       	mov    $0x2,%eax
52aa03:	0f 44 d8             	cmove  %eax,%ebx
52aa06:	8b 79 08             	mov    0x8(%ecx),%edi
52aa09:	85 ff                	test   %edi,%edi
52aa0b:	75 1f                	jne    0x52aa2c
52aa0d:	39 79 74             	cmp    %edi,0x74(%ecx)
52aa10:	75 0c                	jne    0x52aa1e
52aa12:	8b 01                	mov    (%ecx),%eax
52aa14:	f6 40 4c 08          	testb  $0x8,0x4c(%eax)
52aa18:	75 04                	jne    0x52aa1e
52aa1a:	c6 41 17 01          	movb   $0x1,0x17(%ecx)
52aa1e:	51                   	push   %ecx
52aa1f:	e8 ec 79 01 00       	call   0x542410
52aa24:	8b 4d dc             	mov    -0x24(%ebp),%ecx
52aa27:	83 c4 04             	add    $0x4,%esp
52aa2a:	8b f8                	mov    %eax,%edi
52aa2c:	83 fb 02             	cmp    $0x2,%ebx
52aa2f:	75 0c                	jne    0x52aa3d
52aa31:	8b 41 74             	mov    0x74(%ecx),%eax
52aa34:	85 c0                	test   %eax,%eax
52aa36:	0f 45 c8             	cmovne %eax,%ecx
52aa39:	c6 41 15 01          	movb   $0x1,0x15(%ecx)
52aa3d:	8b 57 6c             	mov    0x6c(%edi),%edx
52aa40:	39 57 70             	cmp    %edx,0x70(%edi)
52aa43:	7f 17                	jg     0x52aa5c
52aa45:	6a 00                	push   $0x0
52aa47:	53                   	push   %ebx
52aa48:	68 13 01 00 00       	push   $0x113
52aa4d:	6a 44                	push   $0x44
52aa4f:	57                   	push   %edi
52aa50:	e8 ab ba fd ff       	call   0x506500
52aa55:	83 c4 14             	add    $0x14,%esp
52aa58:	8b d0                	mov    %eax,%edx
52aa5a:	eb 32                	jmp    0x52aa8e
52aa5c:	8b 75 90             	mov    -0x70(%ebp),%esi
52aa5f:	8d 42 01             	lea    0x1(%edx),%eax
52aa62:	89 47 6c             	mov    %eax,0x6c(%edi)
52aa65:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
52aa68:	8b 47 68             	mov    0x68(%edi),%eax
52aa6b:	c7 04 88 44 00 00 00 	movl   $0x44,(%eax,%ecx,4)
52aa72:	c7 44 88 04 13 01 00 	movl   $0x113,0x4(%eax,%ecx,4)
52aa79:	00
52aa7a:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
52aa7e:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52aa85:	00
52aa86:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52aa8d:	00
52aa8e:	8b 07                	mov    (%edi),%eax
52aa90:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52aa94:	74 10                	je     0x52aaa6
52aa96:	ff 75 c0             	push   -0x40(%ebp)
52aa99:	6a 00                	push   $0x0
52aa9b:	50                   	push   %eax
52aa9c:	e8 0f 92 fd ff       	call   0x503cb0
52aaa1:	83 c4 0c             	add    $0xc,%esp
52aaa4:	eb 20                	jmp    0x52aac6
52aaa6:	85 d2                	test   %edx,%edx
52aaa8:	79 04                	jns    0x52aaae
52aaaa:	8b 57 6c             	mov    0x6c(%edi),%edx
52aaad:	4a                   	dec    %edx
52aaae:	8b 47 68             	mov    0x68(%edi),%eax
52aab1:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
52aab4:	6a 00                	push   $0x0
52aab6:	ff 75 c0             	push   -0x40(%ebp)
52aab9:	8d 04 88             	lea    (%eax,%ecx,4),%eax
52aabc:	50                   	push   %eax
52aabd:	57                   	push   %edi
52aabe:	e8 7d f1 02 00       	call   0x559c40
52aac3:	83 c4 10             	add    $0x10,%esp
52aac6:	8b 47 6c             	mov    0x6c(%edi),%eax
52aac9:	85 c0                	test   %eax,%eax
52aacb:	7e 10                	jle    0x52aadd
52aacd:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52aad0:	ba 03 00 00 00       	mov    $0x3,%edx
52aad5:	8b 47 68             	mov    0x68(%edi),%eax
52aad8:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
52aadd:	8b 4e 0c             	mov    0xc(%esi),%ecx
52aae0:	8b 55 a0             	mov    -0x60(%ebp),%edx
52aae3:	f7 d2                	not    %edx
52aae5:	8b 41 3c             	mov    0x3c(%ecx),%eax
52aae8:	03 41 38             	add    0x38(%ecx),%eax
52aaeb:	79 0d                	jns    0x52aafa
52aaed:	52                   	push   %edx
52aaee:	56                   	push   %esi
52aaef:	51                   	push   %ecx
52aaf0:	e8 ab 8c fe ff       	call   0x5137a0
52aaf5:	83 c4 0c             	add    $0xc,%esp
52aaf8:	eb 09                	jmp    0x52ab03
52aafa:	8b 49 40             	mov    0x40(%ecx),%ecx
52aafd:	8b 46 6c             	mov    0x6c(%esi),%eax
52ab00:	89 04 91             	mov    %eax,(%ecx,%edx,4)
52ab03:	8b 55 bc             	mov    -0x44(%ebp),%edx
52ab06:	8b 4d cc             	mov    -0x34(%ebp),%ecx
52ab09:	8b 45 9c             	mov    -0x64(%ebp),%eax
52ab0c:	41                   	inc    %ecx
52ab0d:	83 c0 14             	add    $0x14,%eax
52ab10:	89 4d cc             	mov    %ecx,-0x34(%ebp)
52ab13:	89 45 9c             	mov    %eax,-0x64(%ebp)
52ab16:	3b 0a                	cmp    (%edx),%ecx
52ab18:	0f 8c f2 fd ff ff    	jl     0x52a910
52ab1e:	8b 7d dc             	mov    -0x24(%ebp),%edi
52ab21:	8b 5d d8             	mov    -0x28(%ebp),%ebx
52ab24:	c7 47 34 00 00 00 00 	movl   $0x0,0x34(%edi)
52ab2b:	8b 95 7c ff ff ff    	mov    -0x84(%ebp),%edx
52ab31:	85 d2                	test   %edx,%edx
52ab33:	74 7c                	je     0x52abb1
52ab35:	83 3a 00             	cmpl   $0x0,(%edx)
52ab38:	75 10                	jne    0x52ab4a
52ab3a:	c6 45 28 04          	movb   $0x4,0x28(%ebp)
52ab3e:	c7 85 7c ff ff ff 00 	movl   $0x0,-0x84(%ebp)
52ab45:	00 00 00
52ab48:	eb 67                	jmp    0x52abb1
52ab4a:	8b 42 10             	mov    0x10(%edx),%eax
52ab4d:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
52ab53:	85 c0                	test   %eax,%eax
52ab55:	74 5a                	je     0x52abb1
52ab57:	8b 56 6c             	mov    0x6c(%esi),%edx
52ab5a:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)
52ab60:	39 56 70             	cmp    %edx,0x70(%esi)
52ab63:	7f 19                	jg     0x52ab7e
52ab65:	6a 00                	push   $0x0
52ab67:	6a 00                	push   $0x0
52ab69:	6a 00                	push   $0x0
52ab6b:	6a 0b                	push   $0xb
52ab6d:	56                   	push   %esi
52ab6e:	e8 8d b9 fd ff       	call   0x506500
52ab73:	83 c4 14             	add    $0x14,%esp