51aada:	33 c0                	xor    %eax,%eax
51aadc:	85 c0                	test   %eax,%eax
51aade:	75 05                	jne    0x51aae5
51aae0:	2b 7d fc             	sub    -0x4(%ebp),%edi
51aae3:	8b c7                	mov    %edi,%eax
51aae5:	5f                   	pop    %edi
51aae6:	5e                   	pop    %esi
51aae7:	5b                   	pop    %ebx
51aae8:	8b e5                	mov    %ebp,%esp
51aaea:	5d                   	pop    %ebp
51aaeb:	c3                   	ret
51aaec:	cc                   	int3
51aaed:	cc                   	int3
51aaee:	cc                   	int3
51aaef:	cc                   	int3
51aaf0:	55                   	push   %ebp
51aaf1:	8b ec                	mov    %esp,%ebp
51aaf3:	56                   	push   %esi
51aaf4:	8b 75 08             	mov    0x8(%ebp),%esi
51aaf7:	57                   	push   %edi
51aaf8:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51aafc:	8b 7e 04             	mov    0x4(%esi),%edi
51aaff:	74 12                	je     0x51ab13
51ab01:	ff 46 0c             	incl   0xc(%esi)
51ab04:	80 7e 0a 00          	cmpb   $0x0,0xa(%esi)
51ab08:	75 09                	jne    0x51ab13
51ab0a:	56                   	push   %esi
51ab0b:	e8 c0 c4 fd ff       	call   0x4f6fd0
51ab10:	83 c4 04             	add    $0x4,%esp
51ab13:	8b 07                	mov    (%edi),%eax
51ab15:	8b 4d 0c             	mov    0xc(%ebp),%ecx
51ab18:	3b 48 60             	cmp    0x60(%eax),%ecx
51ab1b:	7e 14                	jle    0x51ab31
51ab1d:	80 78 06 00          	cmpb   $0x0,0x6(%eax)
51ab21:	74 0e                	je     0x51ab31
51ab23:	51                   	push   %ecx
51ab24:	50                   	push   %eax
51ab25:	e8 66 21 ff ff       	call   0x50cc90
51ab2a:	83 c4 08             	add    $0x8,%esp
51ab2d:	8b f8                	mov    %eax,%edi
51ab2f:	eb 02                	jmp    0x51ab33
51ab31:	33 ff                	xor    %edi,%edi
51ab33:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51ab37:	74 0f                	je     0x51ab48
51ab39:	83 46 0c ff          	addl   $0xffffffff,0xc(%esi)
51ab3d:	75 09                	jne    0x51ab48
51ab3f:	56                   	push   %esi
51ab40:	e8 8b de 03 00       	call   0x5589d0
51ab45:	83 c4 04             	add    $0x4,%esp
51ab48:	8b c7                	mov    %edi,%eax
51ab4a:	5f                   	pop    %edi
51ab4b:	5e                   	pop    %esi
51ab4c:	5d                   	pop    %ebp
51ab4d:	c3                   	ret
51ab4e:	cc                   	int3
51ab4f:	cc                   	int3
51ab50:	55                   	push   %ebp
51ab51:	8b ec                	mov    %esp,%ebp
51ab53:	51                   	push   %ecx
51ab54:	53                   	push   %ebx
51ab55:	56                   	push   %esi
51ab56:	57                   	push   %edi
51ab57:	8b 7d 08             	mov    0x8(%ebp),%edi
51ab5a:	33 db                	xor    %ebx,%ebx
51ab5c:	8b 77 04             	mov    0x4(%edi),%esi
51ab5f:	38 5f 09             	cmp    %bl,0x9(%edi)
51ab62:	74 11                	je     0x51ab75
51ab64:	ff 47 0c             	incl   0xc(%edi)
51ab67:	38 5f 0a             	cmp    %bl,0xa(%edi)
51ab6a:	75 09                	jne    0x51ab75
51ab6c:	57                   	push   %edi
51ab6d:	e8 5e c4 fd ff       	call   0x4f6fd0
51ab72:	83 c4 04             	add    $0x4,%esp
51ab75:	8a 47 08             	mov    0x8(%edi),%al
51ab78:	8b 55 0c             	mov    0xc(%ebp),%edx
51ab7b:	3c 02                	cmp    $0x2,%al
51ab7d:	0f 84 5d 02 00 00    	je     0x51ade0
51ab83:	3c 01                	cmp    $0x1,%al
51ab85:	75 08                	jne    0x51ab8f
51ab87:	85 d2                	test   %edx,%edx
51ab89:	0f 84 51 02 00 00    	je     0x51ade0
51ab8f:	8b 07                	mov    (%edi),%eax
51ab91:	8b 40 20             	mov    0x20(%eax),%eax
51ab94:	25 00 00 00 02       	and    $0x2000000,%eax
51ab99:	83 c8 00             	or     $0x0,%eax
51ab9c:	74 10                	je     0x51abae
51ab9e:	8b 06                	mov    (%esi),%eax
51aba0:	38 58 0e             	cmp    %bl,0xe(%eax)
51aba3:	75 09                	jne    0x51abae
51aba5:	b8 fe ff 00 00       	mov    $0xfffe,%eax
51abaa:	66 21 46 16          	and    %ax,0x16(%esi)
51abae:	0f b7 46 16          	movzwl 0x16(%esi),%eax
51abb2:	a8 01                	test   $0x1,%al
51abb4:	74 0e                	je     0x51abc4
51abb6:	85 d2                	test   %edx,%edx
51abb8:	74 14                	je     0x51abce
51abba:	bb 08 00 00 00       	mov    $0x8,%ebx
51abbf:	e9 59 02 00 00       	jmp    0x51ae1d
51abc4:	85 d2                	test   %edx,%edx
51abc6:	74 06                	je     0x51abce
51abc8:	80 7e 14 02          	cmpb   $0x2,0x14(%esi)
51abcc:	74 04                	je     0x51abd2
51abce:	84 c0                	test   %al,%al
51abd0:	79 05                	jns    0x51abd7
51abd2:	8b 46 4c             	mov    0x4c(%esi),%eax
51abd5:	eb 62                	jmp    0x51ac39
51abd7:	83 fa 01             	cmp    $0x1,%edx
51abda:	7e 12                	jle    0x51abee
51abdc:	8b 46 48             	mov    0x48(%esi),%eax
51abdf:	85 c0                	test   %eax,%eax
51abe1:	74 0b                	je     0x51abee
51abe3:	39 38                	cmp    %edi,(%eax)
51abe5:	75 50                	jne    0x51ac37
51abe7:	8b 40 0c             	mov    0xc(%eax),%eax
51abea:	85 c0                	test   %eax,%eax
51abec:	75 f5                	jne    0x51abe3
51abee:	6a 01                	push   $0x1
51abf0:	6a 01                	push   $0x1
51abf2:	57                   	push   %edi
51abf3:	e8 38 67 ff ff       	call   0x511330
51abf8:	8b d8                	mov    %eax,%ebx
51abfa:	83 c4 0c             	add    $0xc,%esp
51abfd:	85 db                	test   %ebx,%ebx
51abff:	0f 85 18 02 00 00    	jne    0x51ae1d
51ac05:	b8 ef ff 00 00       	mov    $0xffef,%eax
51ac0a:	66 21 46 16          	and    %ax,0x16(%esi)
51ac0e:	66 8b 46 16          	mov    0x16(%esi),%ax
51ac12:	39 5e 2c             	cmp    %ebx,0x2c(%esi)
51ac15:	75 09                	jne    0x51ac20
51ac17:	83 c8 10             	or     $0x10,%eax
51ac1a:	66 89 46 16          	mov    %ax,0x16(%esi)
51ac1e:	66 90                	xchg   %ax,%ax
51ac20:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
51ac24:	75 23                	jne    0x51ac49
51ac26:	56                   	push   %esi
51ac27:	e8 34 d8 fe ff       	call   0x508460
51ac2c:	8b d8                	mov    %eax,%ebx
51ac2e:	83 c4 04             	add    $0x4,%esp
51ac31:	85 db                	test   %ebx,%ebx
51ac33:	74 eb                	je     0x51ac20
51ac35:	eb 66                	jmp    0x51ac9d
51ac37:	8b 00                	mov    (%eax),%eax
51ac39:	8b 00                	mov    (%eax),%eax
51ac3b:	85 c0                	test   %eax,%eax
51ac3d:	74 af                	je     0x51abee
51ac3f:	bb 06 01 00 00       	mov    $0x106,%ebx
51ac44:	e9 d4 01 00 00       	jmp    0x51ae1d
51ac49:	85 db                	test   %ebx,%ebx
51ac4b:	75 50                	jne    0x51ac9d
51ac4d:	8b 55 0c             	mov    0xc(%ebp),%edx
51ac50:	85 d2                	test   %edx,%edx
51ac52:	0f 84 83 00 00 00    	je     0x51acdb
51ac58:	f6 46 16 01          	testb  $0x1,0x16(%esi)
51ac5c:	74 07                	je     0x51ac65
51ac5e:	bb 08 00 00 00       	mov    $0x8,%ebx
51ac63:	eb 38                	jmp    0x51ac9d
51ac65:	8b 07                	mov    (%edi),%eax
51ac67:	33 c9                	xor    %ecx,%ecx
51ac69:	80 78 50 02          	cmpb   $0x2,0x50(%eax)
51ac6d:	0f 94 c1             	sete   %cl
51ac70:	33 c0                	xor    %eax,%eax
51ac72:	83 fa 01             	cmp    $0x1,%edx
51ac75:	51                   	push   %ecx
51ac76:	0f 9f c0             	setg   %al
51ac79:	50                   	push   %eax
51ac7a:	ff 36                	push   (%esi)
51ac7c:	e8 7f 74 01 00       	call   0x532100
51ac81:	8b d8                	mov    %eax,%ebx
51ac83:	83 c4 0c             	add    $0xc,%esp
51ac86:	85 db                	test   %ebx,%ebx
51ac88:	0f 85 85 00 00 00    	jne    0x51ad13
51ac8e:	56                   	push   %esi
51ac8f:	e8 8c 0b ff ff       	call   0x50b820
51ac94:	83 c4 04             	add    $0x4,%esp
51ac97:	8b d8                	mov    %eax,%ebx
51ac99:	85 db                	test   %ebx,%ebx
51ac9b:	74 3e                	je     0x51acdb
51ac9d:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
51aca1:	75 38                	jne    0x51acdb
51aca3:	8b 46 0c             	mov    0xc(%esi),%eax
51aca6:	85 c0                	test   %eax,%eax
51aca8:	74 31                	je     0x51acdb
51acaa:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
51acb1:	8b 40 48             	mov    0x48(%eax),%eax
51acb4:	50                   	push   %eax
51acb5:	8b 48 14             	mov    0x14(%eax),%ecx
51acb8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
51acbb:	e8 30 99 01 00       	call   0x5345f0
51acc0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51acc3:	83 c4 04             	add    $0x4,%esp
51acc6:	8b 81 d4 00 00 00    	mov    0xd4(%ecx),%eax
51accc:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
51acd0:	75 09                	jne    0x51acdb
51acd2:	51                   	push   %ecx
51acd3:	e8 18 27 ff ff       	call   0x50d3f0
51acd8:	83 c4 04             	add    $0x4,%esp
51acdb:	80 fb 05             	cmp    $0x5,%bl
51acde:	75 71                	jne    0x51ad51
51ace0:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
51ace4:	75 6b                	jne    0x51ad51
51ace6:	8b 7e 04             	mov    0x4(%esi),%edi
51ace9:	8b 06                	mov    (%esi),%eax
51aceb:	81 c7 a4 01 00 00    	add    $0x1a4,%edi
51acf1:	8b 0f                	mov    (%edi),%ecx
51acf3:	8b 50 3c             	mov    0x3c(%eax),%edx
51acf6:	85 c9                	test   %ecx,%ecx
51acf8:	74 54                	je     0x51ad4e
51acfa:	8b 47 08             	mov    0x8(%edi),%eax
51acfd:	85 c0                	test   %eax,%eax
51acff:	78 4d                	js     0x51ad4e
51ad01:	80 7f 0c 00          	cmpb   $0x0,0xc(%edi)
51ad05:	74 28                	je     0x51ad2f
51ad07:	52                   	push   %edx
51ad08:	50                   	push   %eax
51ad09:	ff 77 04             	push   0x4(%edi)
51ad0c:	ff d1                	call   *%ecx
51ad0e:	83 c4 0c             	add    $0xc,%esp
51ad11:	eb 25                	jmp    0x51ad38
51ad13:	81 fb 05 02 00 00    	cmp    $0x205,%ebx
51ad19:	0f 85 7a ff ff ff    	jne    0x51ac99
51ad1f:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
51ad23:	75 b6                	jne    0x51acdb
51ad25:	bb 05 00 00 00       	mov    $0x5,%ebx
51ad2a:	e9 6e ff ff ff       	jmp    0x51ac9d
51ad2f:	50                   	push   %eax
51ad30:	ff 77 04             	push   0x4(%edi)
51ad33:	ff d1                	call   *%ecx
51ad35:	83 c4 08             	add    $0x8,%esp
51ad38:	85 c0                	test   %eax,%eax
51ad3a:	74 0b                	je     0x51ad47
51ad3c:	ff 47 08             	incl   0x8(%edi)
51ad3f:	8b 7d 08             	mov    0x8(%ebp),%edi
51ad42:	e9 d9 fe ff ff       	jmp    0x51ac20
51ad47:	c7 47 08 ff ff ff ff 	movl   $0xffffffff,0x8(%edi)
51ad4e:	8b 7d 08             	mov    0x8(%ebp),%edi
51ad51:	85 db                	test   %ebx,%ebx
51ad53:	0f 85 c4 00 00 00    	jne    0x51ae1d
51ad59:	38 5f 08             	cmp    %bl,0x8(%edi)
51ad5c:	75 18                	jne    0x51ad76
51ad5e:	ff 46 28             	incl   0x28(%esi)
51ad61:	38 5f 09             	cmp    %bl,0x9(%edi)
51ad64:	74 10                	je     0x51ad76
51ad66:	c6 47 28 01          	movb   $0x1,0x28(%edi)
51ad6a:	8b 46 48             	mov    0x48(%esi),%eax
51ad6d:	89 47 2c             	mov    %eax,0x2c(%edi)
51ad70:	8d 47 20             	lea    0x20(%edi),%eax
51ad73:	89 46 48             	mov    %eax,0x48(%esi)
51ad76:	8b 55 0c             	mov    0xc(%ebp),%edx
51ad79:	85 d2                	test   %edx,%edx
51ad7b:	0f 95 c0             	setne  %al
51ad7e:	fe c0                	inc    %al
51ad80:	88 47 08             	mov    %al,0x8(%edi)
51ad83:	3a 46 14             	cmp    0x14(%esi),%al
51ad86:	76 03                	jbe    0x51ad8b
51ad88:	88 46 14             	mov    %al,0x14(%esi)
51ad8b:	85 d2                	test   %edx,%edx
51ad8d:	74 51                	je     0x51ade0
51ad8f:	8b 4e 0c             	mov    0xc(%esi),%ecx
51ad92:	b8 bf ff 00 00       	mov    $0xffbf,%eax
51ad97:	66 21 46 16          	and    %ax,0x16(%esi)
51ad9b:	66 8b 46 16          	mov    0x16(%esi),%ax
51ad9f:	89 4d 08             	mov    %ecx,0x8(%ebp)
51ada2:	89 7e 4c             	mov    %edi,0x4c(%esi)
51ada5:	83 fa 01             	cmp    $0x1,%edx
51ada8:	7e 07                	jle    0x51adb1
51adaa:	83 c8 40             	or     $0x40,%eax
51adad:	66 89 46 16          	mov    %ax,0x16(%esi)
51adb1:	8b 41 38             	mov    0x38(%ecx),%eax
51adb4:	8b 40 1c             	mov    0x1c(%eax),%eax
51adb7:	0f c8                	bswap  %eax
51adb9:	39 46 2c             	cmp    %eax,0x2c(%esi)
51adbc:	74 22                	je     0x51ade0
51adbe:	ff 71 48             	push   0x48(%ecx)
51adc1:	e8 7a 8b 01 00       	call   0x533940
51adc6:	8b d8                	mov    %eax,%ebx
51adc8:	83 c4 04             	add    $0x4,%esp
51adcb:	85 db                	test   %ebx,%ebx
51adcd:	75 4e                	jne    0x51ae1d
51adcf:	8b 45 08             	mov    0x8(%ebp),%eax
51add2:	8b 4e 2c             	mov    0x2c(%esi),%ecx
51add5:	8b 55 0c             	mov    0xc(%ebp),%edx
51add8:	0f c9                	bswap  %ecx
51adda:	8b 40 38             	mov    0x38(%eax),%eax
51addd:	89 48 1c             	mov    %ecx,0x1c(%eax)
51ade0:	8b 4d 10             	mov    0x10(%ebp),%ecx
51ade3:	85 c9                	test   %ecx,%ecx
51ade5:	74 0d                	je     0x51adf4
51ade7:	8b 46 0c             	mov    0xc(%esi),%eax
51adea:	8b 40 38             	mov    0x38(%eax),%eax
51aded:	8b 40 28             	mov    0x28(%eax),%eax
51adf0:	0f c8                	bswap  %eax
51adf2:	89 01                	mov    %eax,(%ecx)
51adf4:	85 d2                	test   %edx,%edx
51adf6:	74 25                	je     0x51ae1d
51adf8:	8b 07                	mov    (%edi),%eax
51adfa:	8b 88 dc 01 00 00    	mov    0x1dc(%eax),%ecx
51ae00:	8b 06                	mov    (%esi),%eax
51ae02:	3b 48 60             	cmp    0x60(%eax),%ecx
51ae05:	7e 14                	jle    0x51ae1b
51ae07:	80 78 06 00          	cmpb   $0x0,0x6(%eax)
51ae0b:	74 0e                	je     0x51ae1b
51ae0d:	51                   	push   %ecx
51ae0e:	50                   	push   %eax
51ae0f:	e8 7c 1e ff ff       	call   0x50cc90
51ae14:	83 c4 08             	add    $0x8,%esp
51ae17:	8b d8                	mov    %eax,%ebx
51ae19:	eb 02                	jmp    0x51ae1d
51ae1b:	33 db                	xor    %ebx,%ebx
51ae1d:	80 7f 09 00          	cmpb   $0x0,0x9(%edi)
51ae21:	74 0f                	je     0x51ae32
51ae23:	83 47 0c ff          	addl   $0xffffffff,0xc(%edi)
51ae27:	75 09                	jne    0x51ae32
51ae29:	57                   	push   %edi
51ae2a:	e8 a1 db 03 00       	call   0x5589d0
51ae2f:	83 c4 04             	add    $0x4,%esp
51ae32:	5f                   	pop    %edi
51ae33:	5e                   	pop    %esi
51ae34:	8b c3                	mov    %ebx,%eax
51ae36:	5b                   	pop    %ebx
51ae37:	8b e5                	mov    %ebp,%esp
51ae39:	5d                   	pop    %ebp
51ae3a:	c3                   	ret
51ae3b:	cc                   	int3
51ae3c:	cc                   	int3
51ae3d:	cc                   	int3
51ae3e:	cc                   	int3
51ae3f:	cc                   	int3
51ae40:	55                   	push   %ebp
51ae41:	8b ec                	mov    %esp,%ebp
51ae43:	56                   	push   %esi
51ae44:	8b 75 08             	mov    0x8(%ebp),%esi
51ae47:	ff 76 10             	push   0x10(%esi)
51ae4a:	e8 41 ff fc ff       	call   0x4ead90
51ae4f:	83 c4 04             	add    $0x4,%esp
51ae52:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
51ae59:	c6 06 01             	movb   $0x1,(%esi)
51ae5c:	5e                   	pop    %esi
51ae5d:	5d                   	pop    %ebp
51ae5e:	c3                   	ret
51ae5f:	cc                   	int3
51ae60:	55                   	push   %ebp
51ae61:	8b ec                	mov    %esp,%ebp
51ae63:	53                   	push   %ebx
51ae64:	56                   	push   %esi
51ae65:	8b 75 08             	mov    0x8(%ebp),%esi
51ae68:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51ae6c:	8b 5e 04             	mov    0x4(%esi),%ebx
51ae6f:	89 5d 08             	mov    %ebx,0x8(%ebp)
51ae72:	74 12                	je     0x51ae86
51ae74:	ff 46 0c             	incl   0xc(%esi)