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
52ab76:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
52ab7c:	eb 33                	jmp    0x52abb1
52ab7e:	8d 42 01             	lea    0x1(%edx),%eax
52ab81:	89 46 6c             	mov    %eax,0x6c(%esi)
52ab84:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
52ab87:	8b 46 68             	mov    0x68(%esi),%eax
52ab8a:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
52ab91:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
52ab98:	00
52ab99:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
52aba0:	00
52aba1:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52aba8:	00
52aba9:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52abb0:	00
52abb1:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
52abb7:	8b 48 20             	mov    0x20(%eax),%ecx
52abba:	8b 40 24             	mov    0x24(%eax),%eax
52abbd:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
52abc3:	8b c1                	mov    %ecx,%eax
52abc5:	25 00 60 00 00       	and    $0x6000,%eax
52abca:	83 c8 00             	or     $0x0,%eax
52abcd:	75 0d                	jne    0x52abdc
52abcf:	33 d2                	xor    %edx,%edx
52abd1:	89 45 9c             	mov    %eax,-0x64(%ebp)
52abd4:	89 55 c8             	mov    %edx,-0x38(%ebp)
52abd7:	e9 3c 01 00 00       	jmp    0x52ad18
52abdc:	81 e1 00 20 00 00    	and    $0x2000,%ecx
52abe2:	83 c9 00             	or     $0x0,%ecx
52abe5:	0f 84 87 00 00 00    	je     0x52ac72
52abeb:	8b 4d dc             	mov    -0x24(%ebp),%ecx
52abee:	33 d2                	xor    %edx,%edx
52abf0:	33 ff                	xor    %edi,%edi
52abf2:	8b 01                	mov    (%ecx),%eax
52abf4:	8b 40 20             	mov    0x20(%eax),%eax
52abf7:	25 00 00 04 00       	and    $0x40000,%eax
52abfc:	0b c2                	or     %edx,%eax
52abfe:	74 0c                	je     0x52ac0c
52ac00:	53                   	push   %ebx
52ac01:	51                   	push   %ecx
52ac02:	e8 59 38 01 00       	call   0x53e460
52ac07:	83 c4 08             	add    $0x8,%esp
52ac0a:	8b d0                	mov    %eax,%edx
52ac0c:	8b ca                	mov    %edx,%ecx
52ac0e:	85 d2                	test   %edx,%edx
52ac10:	74 13                	je     0x52ac25
52ac12:	80 79 08 7e          	cmpb   $0x7e,0x8(%ecx)
52ac16:	75 06                	jne    0x52ac1e
52ac18:	0f b6 41 09          	movzbl 0x9(%ecx),%eax
52ac1c:	0b f8                	or     %eax,%edi
52ac1e:	8b 49 20             	mov    0x20(%ecx),%ecx
52ac21:	85 c9                	test   %ecx,%ecx
52ac23:	75 ed                	jne    0x52ac12
52ac25:	33 c9                	xor    %ecx,%ecx
52ac27:	85 ff                	test   %edi,%edi
52ac29:	8b 7d dc             	mov    -0x24(%ebp),%edi
52ac2c:	0f 45 ca             	cmovne %edx,%ecx
52ac2f:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
52ac32:	85 c9                	test   %ecx,%ecx
52ac34:	0f 85 80 00 00 00    	jne    0x52acba
52ac3a:	8b 07                	mov    (%edi),%eax
52ac3c:	8b 40 20             	mov    0x20(%eax),%eax
52ac3f:	25 00 40 00 00       	and    $0x4000,%eax
52ac44:	0b c1                	or     %ecx,%eax
52ac46:	74 1e                	je     0x52ac66
52ac48:	8b 43 48             	mov    0x48(%ebx),%eax
52ac4b:	51                   	push   %ecx
52ac4c:	ff 33                	push   (%ebx)
52ac4e:	83 c0 38             	add    $0x38,%eax
52ac51:	50                   	push   %eax
52ac52:	e8 79 73 fd ff       	call   0x501fd0
52ac57:	83 c4 0c             	add    $0xc,%esp
52ac5a:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
52ac5e:	75 5a                	jne    0x52acba
52ac60:	83 7b 10 00          	cmpl   $0x0,0x10(%ebx)
52ac64:	75 54                	jne    0x52acba
52ac66:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
52ac6d:	e9 a6 00 00 00       	jmp    0x52ad18
52ac72:	8b 07                	mov    (%edi),%eax
52ac74:	33 d2                	xor    %edx,%edx
52ac76:	c7 45 9c 00 00 00 00 	movl   $0x0,-0x64(%ebp)
52ac7d:	89 55 c8             	mov    %edx,-0x38(%ebp)
52ac80:	8b 40 20             	mov    0x20(%eax),%eax
52ac83:	25 00 40 00 00       	and    $0x4000,%eax
52ac88:	0b c2                	or     %edx,%eax
52ac8a:	74 2a                	je     0x52acb6
52ac8c:	8b 43 48             	mov    0x48(%ebx),%eax
52ac8f:	52                   	push   %edx
52ac90:	ff 33                	push   (%ebx)
52ac92:	83 c0 38             	add    $0x38,%eax
52ac95:	50                   	push   %eax
52ac96:	e8 35 73 fd ff       	call   0x501fd0
52ac9b:	83 c4 0c             	add    $0xc,%esp
52ac9e:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
52aca2:	75 0a                	jne    0x52acae
52aca4:	83 7b 10 00          	cmpl   $0x0,0x10(%ebx)
52aca8:	75 04                	jne    0x52acae
52acaa:	33 d2                	xor    %edx,%edx
52acac:	eb 05                	jmp    0x52acb3
52acae:	ba 01 00 00 00       	mov    $0x1,%edx
52acb3:	89 55 c8             	mov    %edx,-0x38(%ebp)
52acb6:	85 d2                	test   %edx,%edx
52acb8:	74 5e                	je     0x52ad18
52acba:	ff 47 2c             	incl   0x2c(%edi)
52acbd:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52acc0:	8b 57 2c             	mov    0x2c(%edi),%edx
52acc3:	89 55 c8             	mov    %edx,-0x38(%ebp)
52acc6:	39 4e 70             	cmp    %ecx,0x70(%esi)
52acc9:	7f 12                	jg     0x52acdd
52accb:	6a 00                	push   $0x0
52accd:	52                   	push   %edx
52acce:	6a 00                	push   $0x0
52acd0:	6a 45                	push   $0x45
52acd2:	56                   	push   %esi
52acd3:	e8 28 b8 fd ff       	call   0x506500
52acd8:	83 c4 14             	add    $0x14,%esp
52acdb:	eb 32                	jmp    0x52ad0f
52acdd:	8d 41 01             	lea    0x1(%ecx),%eax
52ace0:	89 46 6c             	mov    %eax,0x6c(%esi)
52ace3:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52ace6:	8b 46 68             	mov    0x68(%esi),%eax
52ace9:	8b 75 90             	mov    -0x70(%ebp),%esi
52acec:	c7 04 88 45 00 00 00 	movl   $0x45,(%eax,%ecx,4)
52acf3:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
52acfa:	00
52acfb:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52acff:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52ad06:	00
52ad07:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52ad0e:	00
52ad0f:	ff 4f 38             	decl   0x38(%edi)
52ad12:	8b 47 38             	mov    0x38(%edi),%eax
52ad15:	89 45 8c             	mov    %eax,-0x74(%ebp)
52ad18:	80 7d 24 00          	cmpb   $0x0,0x24(%ebp)
52ad1c:	0f 84 7e 04 00 00    	je     0x52b1a0
52ad22:	8b 4d b0             	mov    -0x50(%ebp),%ecx
52ad25:	85 c9                	test   %ecx,%ecx
52ad27:	0f 85 73 04 00 00    	jne    0x52b1a0
52ad2d:	ff 4f 38             	decl   0x38(%edi)
52ad30:	8a 45 28             	mov    0x28(%ebp),%al
52ad33:	8b 7f 38             	mov    0x38(%edi),%edi
52ad36:	0f b6 5b 32          	movzbl 0x32(%ebx),%ebx
52ad3a:	89 7d cc             	mov    %edi,-0x34(%ebp)
52ad3d:	3c 0b                	cmp    $0xb,%al
52ad3f:	74 05                	je     0x52ad46
52ad41:	0f b6 d8             	movzbl %al,%ebx
52ad44:	eb 0b                	jmp    0x52ad51
52ad46:	83 fb 0b             	cmp    $0xb,%ebx
52ad49:	b9 02 00 00 00       	mov    $0x2,%ecx
52ad4e:	0f 44 d9             	cmove  %ecx,%ebx
52ad51:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
52ad57:	85 c9                	test   %ecx,%ecx
52ad59:	74 17                	je     0x52ad72
52ad5b:	83 79 10 00          	cmpl   $0x0,0x10(%ecx)
52ad5f:	75 11                	jne    0x52ad72
52ad61:	33 db                	xor    %ebx,%ebx
52ad63:	39 59 08             	cmp    %ebx,0x8(%ecx)
52ad66:	0f 95 c3             	setne  %bl
52ad69:	8d 1c 5d 04 00 00 00 	lea    0x4(,%ebx,2),%ebx
52ad70:	eb 6e                	jmp    0x52ade0
52ad72:	83 fb 05             	cmp    $0x5,%ebx
52ad75:	75 69                	jne    0x52ade0
52ad77:	3a c3                	cmp    %bl,%al
52ad79:	74 65                	je     0x52ade0
52ad7b:	8b 45 d8             	mov    -0x28(%ebp),%eax
52ad7e:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
52ad82:	74 5c                	je     0x52ade0
52ad84:	8b 56 6c             	mov    0x6c(%esi),%edx
52ad87:	39 56 70             	cmp    %edx,0x70(%esi)
52ad8a:	7f 15                	jg     0x52ada1
52ad8c:	6a 00                	push   $0x0
52ad8e:	6a 00                	push   $0x0
52ad90:	6a 00                	push   $0x0
52ad92:	6a 0b                	push   $0xb
52ad94:	56                   	push   %esi