53ab71:	3b f2                	cmp    %edx,%esi
53ab73:	7f 0d                	jg     0x53ab82
53ab75:	8d 04 31             	lea    (%ecx,%esi,1),%eax
53ab78:	2b d6                	sub    %esi,%edx
53ab7a:	89 47 20             	mov    %eax,0x20(%edi)
53ab7d:	89 57 1c             	mov    %edx,0x1c(%edi)
53ab80:	eb 11                	jmp    0x53ab93
53ab82:	8b 47 2c             	mov    0x2c(%edi),%eax
53ab85:	8d 48 01             	lea    0x1(%eax),%ecx
53ab88:	03 c6                	add    %esi,%eax
53ab8a:	89 8d 48 ff ff ff    	mov    %ecx,-0xb8(%ebp)
53ab90:	89 47 2c             	mov    %eax,0x2c(%edi)
53ab93:	6a 00                	push   $0x0
53ab95:	6a 00                	push   $0x0
53ab97:	ff b5 48 ff ff ff    	push   -0xb8(%ebp)
53ab9d:	ff b5 30 ff ff ff    	push   -0xd0(%ebp)
53aba3:	57                   	push   %edi
53aba4:	e8 27 91 fe ff       	call   0x523cd0
53aba9:	33 d2                	xor    %edx,%edx
53abab:	83 c4 14             	add    $0x14,%esp
53abae:	89 95 44 ff ff ff    	mov    %edx,-0xbc(%ebp)
53abb4:	39 55 d4             	cmp    %edx,-0x2c(%ebp)
53abb7:	7e 50                	jle    0x53ac09
53abb9:	8b bd f4 fe ff ff    	mov    -0x10c(%ebp),%edi
53abbf:	33 f6                	xor    %esi,%esi
53abc1:	8b 45 d0             	mov    -0x30(%ebp),%eax
53abc4:	39 7c 06 0c          	cmp    %edi,0xc(%esi,%eax,1)
53abc8:	8d 0c 06             	lea    (%esi,%eax,1),%ecx
53abcb:	7c 21                	jl     0x53abee
53abcd:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
53abd3:	03 c7                	add    %edi,%eax
53abd5:	50                   	push   %eax
53abd6:	ff 71 08             	push   0x8(%ecx)
53abd9:	ff 71 04             	push   0x4(%ecx)
53abdc:	ff 31                	push   (%ecx)
53abde:	53                   	push   %ebx
53abdf:	e8 dc 94 fe ff       	call   0x5240c0
53abe4:	8b 95 44 ff ff ff    	mov    -0xbc(%ebp),%edx
53abea:	83 c4 14             	add    $0x14,%esp
53abed:	47                   	inc    %edi
53abee:	42                   	inc    %edx
53abef:	83 c6 18             	add    $0x18,%esi
53abf2:	89 95 44 ff ff ff    	mov    %edx,-0xbc(%ebp)
53abf8:	3b 55 d4             	cmp    -0x2c(%ebp),%edx
53abfb:	7c c4                	jl     0x53abc1
53abfd:	8b bd 14 ff ff ff    	mov    -0xec(%ebp),%edi
53ac03:	8b b5 08 ff ff ff    	mov    -0xf8(%ebp),%esi
53ac09:	8a 47 13             	mov    0x13(%edi),%al
53ac0c:	84 c0                	test   %al,%al
53ac0e:	75 08                	jne    0x53ac18
53ac10:	ff 47 2c             	incl   0x2c(%edi)
53ac13:	8b 47 2c             	mov    0x2c(%edi),%eax
53ac16:	eb 0f                	jmp    0x53ac27
53ac18:	fe c8                	dec    %al
53ac1a:	88 47 13             	mov    %al,0x13(%edi)
53ac1d:	0f b6 c0             	movzbl %al,%eax
53ac20:	8b 84 87 94 00 00 00 	mov    0x94(%edi,%eax,4),%eax
53ac27:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
53ac2a:	89 85 08 ff ff ff    	mov    %eax,-0xf8(%ebp)
53ac30:	39 4b 70             	cmp    %ecx,0x70(%ebx)
53ac33:	7f 1b                	jg     0x53ac50
53ac35:	50                   	push   %eax
53ac36:	56                   	push   %esi
53ac37:	ff b5 48 ff ff ff    	push   -0xb8(%ebp)
53ac3d:	6a 5b                	push   $0x5b
53ac3f:	53                   	push   %ebx
53ac40:	e8 bb b8 fc ff       	call   0x506500
53ac45:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
53ac4b:	83 c4 14             	add    $0x14,%esp
53ac4e:	eb 33                	jmp    0x53ac83
53ac50:	8b 95 48 ff ff ff    	mov    -0xb8(%ebp),%edx
53ac56:	8d 41 01             	lea    0x1(%ecx),%eax
53ac59:	89 43 6c             	mov    %eax,0x6c(%ebx)
53ac5c:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53ac5f:	8b 43 68             	mov    0x68(%ebx),%eax
53ac62:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
53ac66:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
53ac6c:	c7 04 88 5b 00 00 00 	movl   $0x5b,(%eax,%ecx,4)
53ac73:	89 74 88 08          	mov    %esi,0x8(%eax,%ecx,4)
53ac77:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
53ac7b:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53ac82:	00
53ac83:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
53ac86:	8b 45 b8             	mov    -0x48(%ebp),%eax
53ac89:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
53ac8f:	39 4b 70             	cmp    %ecx,0x70(%ebx)
53ac92:	7f 1a                	jg     0x53acae
53ac94:	6a 00                	push   $0x0
53ac96:	52                   	push   %edx
53ac97:	50                   	push   %eax
53ac98:	68 82 00 00 00       	push   $0x82
53ac9d:	53                   	push   %ebx
53ac9e:	e8 5d b8 fc ff       	call   0x506500
53aca3:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
53aca9:	83 c4 14             	add    $0x14,%esp
53acac:	eb 37                	jmp    0x53ace5
53acae:	8d 41 01             	lea    0x1(%ecx),%eax
53acb1:	89 43 6c             	mov    %eax,0x6c(%ebx)
53acb4:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53acb7:	8b 43 68             	mov    0x68(%ebx),%eax
53acba:	8b 9d 44 ff ff ff    	mov    -0xbc(%ebp),%ebx
53acc0:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
53acc4:	8b 9d 10 ff ff ff    	mov    -0xf0(%ebp),%ebx
53acca:	c7 04 88 82 00 00 00 	movl   $0x82,(%eax,%ecx,4)
53acd1:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
53acd5:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
53acdc:	00
53acdd:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53ace4:	00
53ace5:	85 d2                	test   %edx,%edx
53ace7:	74 14                	je     0x53acfd
53ace9:	8a 47 13             	mov    0x13(%edi),%al
53acec:	3c 08                	cmp    $0x8,%al
53acee:	73 0d                	jae    0x53acfd
53acf0:	0f b6 c0             	movzbl %al,%eax
53acf3:	89 94 87 94 00 00 00 	mov    %edx,0x94(%edi,%eax,4)
53acfa:	fe 47 13             	incb   0x13(%edi)
53acfd:	83 fe 01             	cmp    $0x1,%esi
53ad00:	75 20                	jne    0x53ad22
53ad02:	8b 8d 48 ff ff ff    	mov    -0xb8(%ebp),%ecx
53ad08:	85 c9                	test   %ecx,%ecx
53ad0a:	74 27                	je     0x53ad33
53ad0c:	8a 47 13             	mov    0x13(%edi),%al
53ad0f:	3c 08                	cmp    $0x8,%al
53ad11:	73 20                	jae    0x53ad33
53ad13:	0f b6 c0             	movzbl %al,%eax
53ad16:	89 8c 87 94 00 00 00 	mov    %ecx,0x94(%edi,%eax,4)
53ad1d:	fe 47 13             	incb   0x13(%edi)
53ad20:	eb 11                	jmp    0x53ad33
53ad22:	3b 77 1c             	cmp    0x1c(%edi),%esi
53ad25:	7e 0c                	jle    0x53ad33
53ad27:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
53ad2d:	89 77 1c             	mov    %esi,0x1c(%edi)
53ad30:	89 47 20             	mov    %eax,0x20(%edi)
53ad33:	ff b5 34 ff ff ff    	push   -0xcc(%ebp)
53ad39:	e8 d2 80 01 00       	call   0x552e10
53ad3e:	8b 57 28             	mov    0x28(%edi),%edx
53ad41:	83 c4 04             	add    $0x4,%esp
53ad44:	89 95 f4 fe ff ff    	mov    %edx,-0x10c(%ebp)
53ad4a:	89 55 bc             	mov    %edx,-0x44(%ebp)
53ad4d:	8d 42 01             	lea    0x1(%edx),%eax
53ad50:	89 47 28             	mov    %eax,0x28(%edi)
53ad53:	8a 47 13             	mov    0x13(%edi),%al
53ad56:	84 c0                	test   %al,%al
53ad58:	75 08                	jne    0x53ad62
53ad5a:	ff 47 2c             	incl   0x2c(%edi)
53ad5d:	8b 47 2c             	mov    0x2c(%edi),%eax
53ad60:	eb 0f                	jmp    0x53ad71
53ad62:	fe c8                	dec    %al
53ad64:	88 47 13             	mov    %al,0x13(%edi)
53ad67:	0f b6 c0             	movzbl %al,%eax
53ad6a:	8b 84 87 94 00 00 00 	mov    0x94(%edi,%eax,4),%eax
53ad71:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
53ad74:	89 85 08 ff ff ff    	mov    %eax,-0xf8(%ebp)
53ad7a:	39 4b 70             	cmp    %ecx,0x70(%ebx)
53ad7d:	7f 10                	jg     0x53ad8f
53ad7f:	56                   	push   %esi
53ad80:	50                   	push   %eax
53ad81:	52                   	push   %edx
53ad82:	6a 72                	push   $0x72
53ad84:	53                   	push   %ebx
53ad85:	e8 76 b7 fc ff       	call   0x506500
53ad8a:	83 c4 14             	add    $0x14,%esp
53ad8d:	eb 33                	jmp    0x53adc2
53ad8f:	8b bd 14 ff ff ff    	mov    -0xec(%ebp),%edi
53ad95:	8d 41 01             	lea    0x1(%ecx),%eax
53ad98:	89 43 6c             	mov    %eax,0x6c(%ebx)
53ad9b:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53ad9e:	8b 43 68             	mov    0x68(%ebx),%eax
53ada1:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
53ada5:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
53adab:	c7 04 88 72 00 00 00 	movl   $0x72,(%eax,%ecx,4)
53adb2:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
53adb6:	89 74 88 0c          	mov    %esi,0xc(%eax,%ecx,4)
53adba:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53adc1:	00
53adc2:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
53adc5:	8b 55 b8             	mov    -0x48(%ebp),%edx
53adc8:	39 4b 70             	cmp    %ecx,0x70(%ebx)
53adcb:	7f 16                	jg     0x53ade3
53adcd:	6a 00                	push   $0x0
53adcf:	ff b5 2c ff ff ff    	push   -0xd4(%ebp)
53add5:	52                   	push   %edx
53add6:	6a 23                	push   $0x23
53add8:	53                   	push   %ebx
53add9:	e8 22 b7 fc ff       	call   0x506500
53adde:	83 c4 14             	add    $0x14,%esp
53ade1:	eb 31                	jmp    0x53ae14
53ade3:	8d 41 01             	lea    0x1(%ecx),%eax
53ade6:	89 43 6c             	mov    %eax,0x6c(%ebx)
53ade9:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53adec:	8b 43 68             	mov    0x68(%ebx),%eax
53adef:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
53adf3:	8b 95 2c ff ff ff    	mov    -0xd4(%ebp),%edx
53adf9:	c7 04 88 23 00 00 00 	movl   $0x23,(%eax,%ecx,4)
53ae00:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
53ae04:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
53ae0b:	00
53ae0c:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53ae13:	00
53ae14:	8b 95 34 ff ff ff    	mov    -0xcc(%ebp),%edx
53ae1a:	b9 01 00 00 00       	mov    $0x1,%ecx
53ae1f:	c6 45 b5 01          	movb   $0x1,-0x4b(%ebp)
53ae23:	83 bd 04 ff ff ff 00 	cmpl   $0x0,-0xfc(%ebp)
53ae2a:	74 52                	je     0x53ae7e
53ae2c:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
53ae32:	f6 40 4c 04          	testb  $0x4,0x4c(%eax)
53ae36:	75 46                	jne    0x53ae7e
53ae38:	85 c9                	test   %ecx,%ecx
53ae3a:	75 06                	jne    0x53ae42
53ae3c:	f6 42 30 08          	testb  $0x8,0x30(%edx)
53ae40:	74 3c                	je     0x53ae7e
53ae42:	8b 13                	mov    (%ebx),%edx
53ae44:	c7 85 70 ff ff ff 00 	movl   $0x0,-0x90(%ebp)
53ae4b:	00 00 00
53ae4e:	80 7a 51 00          	cmpb   $0x0,0x51(%edx)
53ae52:	75 2a                	jne    0x53ae7e
53ae54:	8b 45 84             	mov    -0x7c(%ebp),%eax
53ae57:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
53ae5a:	8b 43 68             	mov    0x68(%ebx),%eax
53ae5d:	ff 74 88 10          	push   0x10(%eax,%ecx,4)
53ae61:	8d 34 88             	lea    (%eax,%ecx,4),%esi
53ae64:	0f be 46 01          	movsbl 0x1(%esi),%eax
53ae68:	50                   	push   %eax
53ae69:	52                   	push   %edx
53ae6a:	e8 41 8e fc ff       	call   0x503cb0
53ae6f:	83 c4 0c             	add    $0xc,%esp
53ae72:	66 c7 06 ad 00       	movw   $0xad,(%esi)
53ae77:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
53ae7e:	83 bd 28 ff ff ff 00 	cmpl   $0x0,-0xd8(%ebp)
53ae85:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
53ae88:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
53ae8e:	74 20                	je     0x53aeb0
53ae90:	8b 55 b8             	mov    -0x48(%ebp),%edx
53ae93:	39 4b 70             	cmp    %ecx,0x70(%ebx)
53ae96:	7f 68                	jg     0x53af00
53ae98:	ff b5 f4 fe ff ff    	push   -0x10c(%ebp)
53ae9e:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
53aea4:	52                   	push   %edx
53aea5:	6a 7d                	push   $0x7d
53aea7:	53                   	push   %ebx
53aea8:	e8 53 b6 fc ff       	call   0x506500
53aead:	83 c4 14             	add    $0x14,%esp
53aeb0:	8b 95 f4 fe ff ff    	mov    -0x10c(%ebp),%edx
53aeb6:	8b 85 30 ff ff ff    	mov    -0xd0(%ebp),%eax
53aebc:	33 f6                	xor    %esi,%esi
53aebe:	39 30                	cmp    %esi,(%eax)
53aec0:	0f 8e dd 00 00 00    	jle    0x53afa3
53aec6:	8d 48 04             	lea    0x4(%eax),%ecx
53aec9:	89 8d 44 ff ff ff    	mov    %ecx,-0xbc(%ebp)
53aecf:	90                   	nop
53aed0:	83 bd 28 ff ff ff 00 	cmpl   $0x0,-0xd8(%ebp)
53aed7:	0f 84 8a 00 00 00    	je     0x53af67
53aedd:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
53aee0:	39 4b 70             	cmp    %ecx,0x70(%ebx)
53aee3:	7f 50                	jg     0x53af35
53aee5:	8b 85 f0 fe ff ff    	mov    -0x110(%ebp),%eax
53aeeb:	03 c6                	add    %esi,%eax
53aeed:	50                   	push   %eax
53aeee:	56                   	push   %esi
53aeef:	52                   	push   %edx
53aef0:	6a 59                	push   $0x59
53aef2:	53                   	push   %ebx
53aef3:	e8 08 b6 fc ff       	call   0x506500
53aef8:	83 c4 14             	add    $0x14,%esp
53aefb:	e9 7f 00 00 00       	jmp    0x53af7f
53af00:	8d 41 01             	lea    0x1(%ecx),%eax
53af03:	89 43 6c             	mov    %eax,0x6c(%ebx)
53af06:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53af09:	8b 43 68             	mov    0x68(%ebx),%eax
53af0c:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
53af10:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
53af16:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
53af1a:	8b 95 f4 fe ff ff    	mov    -0x10c(%ebp),%edx
53af20:	c7 04 88 7d 00 00 00 	movl   $0x7d,(%eax,%ecx,4)
53af27:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
53af2b:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53af32:	00
53af33:	eb 81                	jmp    0x53aeb6
53af35:	8d 41 01             	lea    0x1(%ecx),%eax
53af38:	89 43 6c             	mov    %eax,0x6c(%ebx)
53af3b:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53af3e:	8b 43 68             	mov    0x68(%ebx),%eax
53af41:	c7 04 88 59 00 00 00 	movl   $0x59,(%eax,%ecx,4)
53af48:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
53af4c:	89 74 88 08          	mov    %esi,0x8(%eax,%ecx,4)
53af50:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
53af53:	8b 85 f0 fe ff ff    	mov    -0x110(%ebp),%eax
53af59:	03 c6                	add    %esi,%eax
53af5b:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
53af62:	89 41 0c             	mov    %eax,0xc(%ecx)
53af65:	eb 1e                	jmp    0x53af85
53af67:	8b 85 f0 fe ff ff    	mov    -0x110(%ebp),%eax
53af6d:	03 c6                	add    %esi,%eax
53af6f:	c6 45 b4 01          	movb   $0x1,-0x4c(%ebp)
53af73:	50                   	push   %eax
53af74:	ff 31                	push   (%ecx)
53af76:	57                   	push   %edi
53af77:	e8 54 8c fe ff       	call   0x523bd0
53af7c:	83 c4 0c             	add    $0xc,%esp
53af7f:	8b 95 f4 fe ff ff    	mov    -0x10c(%ebp),%edx
53af85:	8b 85 30 ff ff ff    	mov    -0xd0(%ebp),%eax
53af8b:	46                   	inc    %esi
53af8c:	8b 8d 44 ff ff ff    	mov    -0xbc(%ebp),%ecx
53af92:	83 c1 14             	add    $0x14,%ecx
53af95:	89 8d 44 ff ff ff    	mov    %ecx,-0xbc(%ebp)
53af9b:	3b 30                	cmp    (%eax),%esi
53af9d:	0f 8c 2d ff ff ff    	jl     0x53aed0
53afa3:	8b 8d ec fe ff ff    	mov    -0x114(%ebp),%ecx
53afa9:	85 c9                	test   %ecx,%ecx
53afab:	74 02                	je     0x53afaf
53afad:	ff 01                	incl   (%ecx)
53afaf:	8b 53 6c             	mov    0x6c(%ebx),%edx
53afb2:	8b 30                	mov    (%eax),%esi
53afb4:	39 53 70             	cmp    %edx,0x70(%ebx)
53afb7:	7f 1e                	jg     0x53afd7
53afb9:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
53afbf:	56                   	push   %esi
53afc0:	ff b5 f0 fe ff ff    	push   -0x110(%ebp)
53afc6:	40                   	inc    %eax
53afc7:	50                   	push   %eax
53afc8:	6a 56                	push   $0x56
53afca:	53                   	push   %ebx
53afcb:	e8 30 b5 fc ff       	call   0x506500
53afd0:	83 c4 14             	add    $0x14,%esp
53afd3:	8b d0                	mov    %eax,%edx
53afd5:	eb 40                	jmp    0x53b017
53afd7:	8b bd 4c ff ff ff    	mov    -0xb4(%ebp),%edi
53afdd:	8d 42 01             	lea    0x1(%edx),%eax
53afe0:	89 43 6c             	mov    %eax,0x6c(%ebx)
53afe3:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
53afe6:	8b 43 68             	mov    0x68(%ebx),%eax
53afe9:	47                   	inc    %edi
53afea:	8b 9d 10 ff ff ff    	mov    -0xf0(%ebp),%ebx
53aff0:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
53aff4:	8b bd f0 fe ff ff    	mov    -0x110(%ebp),%edi
53affa:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
53affe:	8b bd 14 ff ff ff    	mov    -0xec(%ebp),%edi
53b004:	c7 04 88 56 00 00 00 	movl   $0x56,(%eax,%ecx,4)
53b00b:	89 74 88 0c          	mov    %esi,0xc(%eax,%ecx,4)
53b00f:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53b016:	00
53b017:	8b 03                	mov    (%ebx),%eax
53b019:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
53b01d:	74 14                	je     0x53b033
53b01f:	8b 95 ec fe ff ff    	mov    -0x114(%ebp),%edx
53b025:	52                   	push   %edx
53b026:	6a f7                	push   $0xfffffff7
53b028:	50                   	push   %eax
53b029:	e8 82 8c fc ff       	call   0x503cb0