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)
51ae77:	80 7e 0a 00          	cmpb   $0x0,0xa(%esi)
51ae7b:	75 09                	jne    0x51ae86
51ae7d:	56                   	push   %esi
51ae7e:	e8 4d c1 fd ff       	call   0x4f6fd0
51ae83:	83 c4 04             	add    $0x4,%esp
51ae86:	8b 43 08             	mov    0x8(%ebx),%eax
51ae89:	57                   	push   %edi
51ae8a:	8b 7d 0c             	mov    0xc(%ebp),%edi
51ae8d:	85 c0                	test   %eax,%eax
51ae8f:	74 27                	je     0x51aeb8
51ae91:	85 ff                	test   %edi,%edi
51ae93:	74 0e                	je     0x51aea3
51ae95:	39 78 40             	cmp    %edi,0x40(%eax)
51ae98:	74 09                	je     0x51aea3
51ae9a:	8b 40 18             	mov    0x18(%eax),%eax
51ae9d:	85 c0                	test   %eax,%eax
51ae9f:	75 f0                	jne    0x51ae91
51aea1:	eb 15                	jmp    0x51aeb8
51aea3:	6a 00                	push   $0x0
51aea5:	57                   	push   %edi
51aea6:	50                   	push   %eax
51aea7:	e8 24 a3 ff ff       	call   0x5151d0
51aeac:	8b d8                	mov    %eax,%ebx
51aeae:	83 c4 0c             	add    $0xc,%esp
51aeb1:	85 db                	test   %ebx,%ebx
51aeb3:	75 21                	jne    0x51aed6
51aeb5:	8b 5d 08             	mov    0x8(%ebp),%ebx
51aeb8:	6a 01                	push   $0x1
51aeba:	6a 00                	push   $0x0
51aebc:	6a 00                	push   $0x0
51aebe:	57                   	push   %edi
51aebf:	56                   	push   %esi
51aec0:	e8 4b c5 fe ff       	call   0x507410
51aec5:	ff 75 10             	push   0x10(%ebp)
51aec8:	6a 00                	push   $0x0
51aeca:	57                   	push   %edi
51aecb:	53                   	push   %ebx
51aecc:	e8 5f dd fd ff       	call   0x4f8c30
51aed1:	83 c4 24             	add    $0x24,%esp
51aed4:	8b d8                	mov    %eax,%ebx
51aed6:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51aeda:	5f                   	pop    %edi
51aedb:	74 0f                	je     0x51aeec
51aedd:	83 46 0c ff          	addl   $0xffffffff,0xc(%esi)
51aee1:	75 09                	jne    0x51aeec
51aee3:	56                   	push   %esi
51aee4:	e8 e7 da 03 00       	call   0x5589d0
51aee9:	83 c4 04             	add    $0x4,%esp
51aeec:	5e                   	pop    %esi
51aeed:	8b c3                	mov    %ebx,%eax
51aeef:	5b                   	pop    %ebx
51aef0:	5d                   	pop    %ebp
51aef1:	c3                   	ret
51aef2:	cc                   	int3
51aef3:	cc                   	int3
51aef4:	cc                   	int3
51aef5:	cc                   	int3
51aef6:	cc                   	int3
51aef7:	cc                   	int3
51aef8:	cc                   	int3
51aef9:	cc                   	int3
51aefa:	cc                   	int3
51aefb:	cc                   	int3
51aefc:	cc                   	int3
51aefd:	cc                   	int3
51aefe:	cc                   	int3
51aeff:	cc                   	int3
51af00:	55                   	push   %ebp
51af01:	8b ec                	mov    %esp,%ebp
51af03:	53                   	push   %ebx
51af04:	56                   	push   %esi
51af05:	8b 75 08             	mov    0x8(%ebp),%esi
51af08:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51af0c:	8b 5e 04             	mov    0x4(%esi),%ebx
51af0f:	74 12                	je     0x51af23
51af11:	ff 46 0c             	incl   0xc(%esi)
51af14:	80 7e 0a 00          	cmpb   $0x0,0xa(%esi)
51af18:	75 09                	jne    0x51af23
51af1a:	56                   	push   %esi
51af1b:	e8 b0 c0 fd ff       	call   0x4f6fd0
51af20:	83 c4 04             	add    $0x4,%esp
51af23:	57                   	push   %edi
51af24:	8b 7b 08             	mov    0x8(%ebx),%edi
51af27:	85 ff                	test   %edi,%edi
51af29:	74 1c                	je     0x51af47
51af2b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
51af30:	8b c7                	mov    %edi,%eax
51af32:	8b 7f 18             	mov    0x18(%edi),%edi
51af35:	39 70 08             	cmp    %esi,0x8(%eax)
51af38:	75 09                	jne    0x51af43
51af3a:	50                   	push   %eax
51af3b:	e8 c0 00 00 00       	call   0x51b000
51af40:	83 c4 04             	add    $0x4,%esp
51af43:	85 ff                	test   %edi,%edi
51af45:	75 e9                	jne    0x51af30
51af47:	6a 00                	push   $0x0
51af49:	6a 00                	push   $0x0
51af4b:	56                   	push   %esi
51af4c:	e8 df 26 00 00       	call   0x51d630
51af51:	83 c4 0c             	add    $0xc,%esp
51af54:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51af58:	5f                   	pop    %edi
51af59:	74 22                	je     0x51af7d
51af5b:	83 46 0c ff          	addl   $0xffffffff,0xc(%esi)
51af5f:	75 09                	jne    0x51af6a
51af61:	56                   	push   %esi
51af62:	e8 69 da 03 00       	call   0x5589d0
51af67:	83 c4 04             	add    $0x4,%esp
51af6a:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51af6e:	74 0d                	je     0x51af7d
51af70:	53                   	push   %ebx
51af71:	e8 7a 73 ff ff       	call   0x5122f0
51af76:	83 c4 04             	add    $0x4,%esp
51af79:	85 c0                	test   %eax,%eax
51af7b:	74 56                	je     0x51afd3
51af7d:	ff 36                	push   (%esi)
51af7f:	ff 33                	push   (%ebx)
51af81:	e8 1a 73 01 00       	call   0x5322a0
51af86:	8b 4b 34             	mov    0x34(%ebx),%ecx
51af89:	83 c4 08             	add    $0x8,%esp
51af8c:	85 c9                	test   %ecx,%ecx
51af8e:	74 0d                	je     0x51af9d
51af90:	8b 43 30             	mov    0x30(%ebx),%eax
51af93:	85 c0                	test   %eax,%eax
51af95:	74 06                	je     0x51af9d
51af97:	50                   	push   %eax
51af98:	ff d1                	call   *%ecx
51af9a:	83 c4 04             	add    $0x4,%esp
51af9d:	8b 43 30             	mov    0x30(%ebx),%eax
51afa0:	85 c0                	test   %eax,%eax
51afa2:	74 09                	je     0x51afad
51afa4:	50                   	push   %eax
51afa5:	e8 e6 fd fc ff       	call   0x4ead90
51afaa:	83 c4 04             	add    $0x4,%esp
51afad:	8b 43 50             	mov    0x50(%ebx),%eax
51afb0:	85 c0                	test   %eax,%eax
51afb2:	74 16                	je     0x51afca
51afb4:	83 c0 fc             	add    $0xfffffffc,%eax
51afb7:	50                   	push   %eax
51afb8:	89 43 50             	mov    %eax,0x50(%ebx)
51afbb:	e8 d0 4e ff ff       	call   0x50fe90
51afc0:	83 c4 04             	add    $0x4,%esp
51afc3:	c7 43 50 00 00 00 00 	movl   $0x0,0x50(%ebx)
51afca:	53                   	push   %ebx
51afcb:	e8 c0 fd fc ff       	call   0x4ead90
51afd0:	83 c4 04             	add    $0x4,%esp
51afd3:	8b 4e 1c             	mov    0x1c(%esi),%ecx
51afd6:	85 c9                	test   %ecx,%ecx
51afd8:	74 06                	je     0x51afe0
51afda:	8b 46 18             	mov    0x18(%esi),%eax
51afdd:	89 41 18             	mov    %eax,0x18(%ecx)
51afe0:	8b 4e 18             	mov    0x18(%esi),%ecx
51afe3:	85 c9                	test   %ecx,%ecx
51afe5:	74 06                	je     0x51afed
51afe7:	8b 46 1c             	mov    0x1c(%esi),%eax
51afea:	89 41 1c             	mov    %eax,0x1c(%ecx)
51afed:	56                   	push   %esi
51afee:	e8 9d fd fc ff       	call   0x4ead90
51aff3:	83 c4 04             	add    $0x4,%esp
51aff6:	33 c0                	xor    %eax,%eax
51aff8:	5e                   	pop    %esi
51aff9:	5b                   	pop    %ebx
51affa:	5d                   	pop    %ebp
51affb:	c3                   	ret
51affc:	cc                   	int3
51affd:	cc                   	int3
51affe:	cc                   	int3
51afff:	cc                   	int3
51b000:	55                   	push   %ebp
51b001:	8b ec                	mov    %esp,%ebp
51b003:	56                   	push   %esi
51b004:	8b 75 08             	mov    0x8(%ebp),%esi
51b007:	57                   	push   %edi
51b008:	8b 7e 08             	mov    0x8(%esi),%edi
51b00b:	85 ff                	test   %edi,%edi