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
52ad95:	e8 66 b7 fd ff       	call   0x506500
52ad9a:	83 c4 14             	add    $0x14,%esp
52ad9d:	8b d0                	mov    %eax,%edx
52ad9f:	eb 36                	jmp    0x52add7
52ada1:	8b 7d cc             	mov    -0x34(%ebp),%edi
52ada4:	8d 42 01             	lea    0x1(%edx),%eax
52ada7:	89 46 6c             	mov    %eax,0x6c(%esi)
52adaa:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
52adad:	8b 46 68             	mov    0x68(%esi),%eax
52adb0:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
52adb7:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
52adbe:	00
52adbf:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
52adc6:	00
52adc7:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52adce:	00
52adcf:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52add6:	00
52add7:	8d 42 01             	lea    0x1(%edx),%eax
52adda:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
52ade0:	8b 55 20             	mov    0x20(%ebp),%edx
52ade3:	85 d2                	test   %edx,%edx
52ade5:	74 5e                	je     0x52ae45
52ade7:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52adea:	39 4e 70             	cmp    %ecx,0x70(%esi)
52aded:	7f 12                	jg     0x52ae01
52adef:	52                   	push   %edx
52adf0:	57                   	push   %edi
52adf1:	ff 75 1c             	push   0x1c(%ebp)
52adf4:	6a 35                	push   $0x35
52adf6:	56                   	push   %esi
52adf7:	e8 04 b7 fd ff       	call   0x506500
52adfc:	83 c4 14             	add    $0x14,%esp
52adff:	eb 2d                	jmp    0x52ae2e
52ae01:	8b 7d 1c             	mov    0x1c(%ebp),%edi
52ae04:	8d 41 01             	lea    0x1(%ecx),%eax
52ae07:	89 46 6c             	mov    %eax,0x6c(%esi)
52ae0a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52ae0d:	8b 46 68             	mov    0x68(%esi),%eax
52ae10:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
52ae14:	8b 7d cc             	mov    -0x34(%ebp),%edi
52ae17:	c7 04 88 35 00 00 00 	movl   $0x35,(%eax,%ecx,4)
52ae1e:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
52ae22:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
52ae26:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52ae2d:	00
52ae2e:	8b 46 6c             	mov    0x6c(%esi),%eax
52ae31:	85 c0                	test   %eax,%eax
52ae33:	7e 10                	jle    0x52ae45
52ae35:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52ae38:	ba 90 00 00 00       	mov    $0x90,%edx
52ae3d:	8b 46 68             	mov    0x68(%esi),%eax
52ae40:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
52ae45:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52ae48:	39 4e 70             	cmp    %ecx,0x70(%esi)
52ae4b:	7f 17                	jg     0x52ae64
52ae4d:	ff 75 1c             	push   0x1c(%ebp)
52ae50:	57                   	push   %edi
52ae51:	ff 75 14             	push   0x14(%ebp)
52ae54:	6a 20                	push   $0x20
52ae56:	56                   	push   %esi
52ae57:	e8 a4 b6 fd ff       	call   0x506500
52ae5c:	8b 55 14             	mov    0x14(%ebp),%edx
52ae5f:	83 c4 14             	add    $0x14,%esp
52ae62:	eb 30                	jmp    0x52ae94
52ae64:	8b 55 14             	mov    0x14(%ebp),%edx
52ae67:	8d 41 01             	lea    0x1(%ecx),%eax
52ae6a:	89 46 6c             	mov    %eax,0x6c(%esi)
52ae6d:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52ae70:	8b 46 68             	mov    0x68(%esi),%eax
52ae73:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
52ae77:	8b 7d 1c             	mov    0x1c(%ebp),%edi
52ae7a:	89 7c 88 0c          	mov    %edi,0xc(%eax,%ecx,4)
52ae7e:	8b 7d cc             	mov    -0x34(%ebp),%edi
52ae81:	c7 04 88 20 00 00 00 	movl   $0x20,(%eax,%ecx,4)
52ae88:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
52ae8c:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52ae93:	00
52ae94:	8d 43 ff             	lea    -0x1(%ebx),%eax
52ae97:	83 f8 05             	cmp    $0x5,%eax
52ae9a:	0f 87 0e 01 00 00    	ja     0x52afae
52aea0:	ff 24 85 18 c5 52 00 	jmp    *0x52c518(,%eax,4)
52aea7:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
52aeab:	74 57                	je     0x52af04
52aead:	8b 5d dc             	mov    -0x24(%ebp),%ebx
52aeb0:	8b cb                	mov    %ebx,%ecx
52aeb2:	6a ff                	push   $0xffffffff
52aeb4:	6a 01                	push   $0x1
52aeb6:	6a 05                	push   $0x5
52aeb8:	8b 43 74             	mov    0x74(%ebx),%eax
52aebb:	85 c0                	test   %eax,%eax
52aebd:	6a 00                	push   $0x0
52aebf:	6a 01                	push   $0x1
52aec1:	ff 75 1c             	push   0x1c(%ebp)
52aec4:	0f 45 c8             	cmovne %eax,%ecx
52aec7:	ff 75 18             	push   0x18(%ebp)
52aeca:	52                   	push   %edx
52aecb:	ff 75 9c             	push   -0x64(%ebp)
52aece:	c6 41 14 01          	movb   $0x1,0x14(%ecx)
52aed2:	ff 75 d8             	push   -0x28(%ebp)
52aed5:	53                   	push   %ebx
52aed6:	e8 c5 18 00 00       	call   0x52c7a0
52aedb:	6a 01                	push   $0x1
52aedd:	ff 75 c8             	push   -0x38(%ebp)
52aee0:	6a 52                	push   $0x52
52aee2:	56                   	push   %esi
52aee3:	e8 f8 6b 01 00       	call   0x541ae0
52aee8:	83 c4 3c             	add    $0x3c,%esp
52aeeb:	c7 85 68 ff ff ff 01 	movl   $0x1,-0x98(%ebp)
52aef2:	00 00 00
52aef5:	c7 85 70 ff ff ff 01 	movl   $0x1,-0x90(%ebp)
52aefc:	00 00 00
52aeff:	e9 f3 01 00 00       	jmp    0x52b0f7
52af04:	8b 5d d8             	mov    -0x28(%ebp),%ebx
52af07:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
52af0b:	74 25                	je     0x52af32
52af0d:	8b 55 dc             	mov    -0x24(%ebp),%edx
52af10:	8b ca                	mov    %edx,%ecx
52af12:	6a ff                	push   $0xffffffff
52af14:	6a 00                	push   $0x0
52af16:	ff 75 18             	push   0x18(%ebp)
52af19:	8b 42 74             	mov    0x74(%edx),%eax
52af1c:	85 c0                	test   %eax,%eax
52af1e:	ff 75 14             	push   0x14(%ebp)
52af21:	0f 45 c8             	cmovne %eax,%ecx
52af24:	53                   	push   %ebx
52af25:	52                   	push   %edx
52af26:	c6 41 14 01          	movb   $0x1,0x14(%ecx)
52af2a:	e8 21 1c 00 00       	call   0x52cb50
52af2f:	83 c4 18             	add    $0x18,%esp
52af32:	c7 85 70 ff ff ff 01 	movl   $0x1,-0x90(%ebp)
52af39:	00 00 00
52af3c:	e9 b6 01 00 00       	jmp    0x52b0f7
52af41:	52                   	push   %edx
52af42:	6a 00                	push   $0x0
52af44:	ff 75 d8             	push   -0x28(%ebp)
52af47:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
52af4d:	ff 75 dc             	push   -0x24(%ebp)
52af50:	e8 ab 60 01 00       	call   0x541000
52af55:	83 c4 14             	add    $0x14,%esp
52af58:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52af5b:	39 4e 70             	cmp    %ecx,0x70(%esi)
52af5e:	7f 17                	jg     0x52af77
52af60:	6a 00                	push   $0x0
52af62:	ff 75 2c             	push   0x2c(%ebp)
52af65:	6a 00                	push   $0x0
52af67:	6a 0b                	push   $0xb
52af69:	56                   	push   %esi
52af6a:	e8 91 b5 fd ff       	call   0x506500
52af6f:	83 c4 14             	add    $0x14,%esp
52af72:	e9 80 01 00 00       	jmp    0x52b0f7
52af77:	8b 55 2c             	mov    0x2c(%ebp),%edx
52af7a:	8d 41 01             	lea    0x1(%ecx),%eax
52af7d:	89 46 6c             	mov    %eax,0x6c(%esi)
52af80:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52af83:	8b 46 68             	mov    0x68(%esi),%eax
52af86:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
52af8d:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
52af94:	00
52af95:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52af99:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52afa0:	00
52afa1:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52afa8:	00
52afa9:	e9 49 01 00 00       	jmp    0x52b0f7
52afae:	bb 02 00 00 00       	mov    $0x2,%ebx
52afb3:	8b 55 d8             	mov    -0x28(%ebp),%edx
52afb6:	0f b7 42 28          	movzwl 0x28(%edx),%eax
52afba:	66 85 c0             	test   %ax,%ax
52afbd:	78 27                	js     0x52afe6
52afbf:	98                   	cwtl
52afc0:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52afc3:	8b 42 04             	mov    0x4(%edx),%eax
52afc6:	ff 34 88             	push   (%eax,%ecx,4)
52afc9:	8b 45 dc             	mov    -0x24(%ebp),%eax