51eb2b:	ff 75 c0             	push   -0x40(%ebp)
51eb2e:	e8 7d 4a 00 00       	call   0x5235b0
51eb33:	83 c4 04             	add    $0x4,%esp
51eb36:	0f b6 c8             	movzbl %al,%ecx
51eb39:	3c 40                	cmp    $0x40,%al
51eb3b:	ba 41 00 00 00       	mov    $0x41,%edx
51eb40:	0f 4e ca             	cmovle %edx,%ecx
51eb43:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
51eb47:	88 4d fb             	mov    %cl,-0x5(%ebp)
51eb4a:	74 12                	je     0x51eb5e
51eb4c:	ff 76 0c             	push   0xc(%esi)
51eb4f:	57                   	push   %edi
51eb50:	e8 8b 77 00 00       	call   0x5262e0
51eb55:	8b 4d d8             	mov    -0x28(%ebp),%ecx
51eb58:	83 c4 08             	add    $0x8,%esp
51eb5b:	89 41 14             	mov    %eax,0x14(%ecx)
51eb5e:	8a 47 13             	mov    0x13(%edi),%al
51eb61:	84 c0                	test   %al,%al
51eb63:	75 08                	jne    0x51eb6d
51eb65:	ff 47 2c             	incl   0x2c(%edi)
51eb68:	8b 47 2c             	mov    0x2c(%edi),%eax
51eb6b:	eb 0f                	jmp    0x51eb7c
51eb6d:	fe c8                	dec    %al
51eb6f:	88 47 13             	mov    %al,0x13(%edi)
51eb72:	0f b6 c0             	movzbl %al,%eax
51eb75:	8b 84 87 94 00 00 00 	mov    0x94(%edi,%eax,4),%eax
51eb7c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
51eb7f:	8a 47 13             	mov    0x13(%edi),%al
51eb82:	84 c0                	test   %al,%al
51eb84:	75 0b                	jne    0x51eb91
51eb86:	ff 47 2c             	incl   0x2c(%edi)
51eb89:	8b 4f 2c             	mov    0x2c(%edi),%ecx
51eb8c:	89 4d d0             	mov    %ecx,-0x30(%ebp)
51eb8f:	eb 12                	jmp    0x51eba3
51eb91:	fe c8                	dec    %al
51eb93:	88 47 13             	mov    %al,0x13(%edi)
51eb96:	0f b6 c0             	movzbl %al,%eax
51eb99:	8b 84 87 94 00 00 00 	mov    0x94(%edi,%eax,4),%eax
51eba0:	89 45 d0             	mov    %eax,-0x30(%ebp)
51eba3:	8b 45 cc             	mov    -0x34(%ebp),%eax
51eba6:	8d 50 04             	lea    0x4(%eax),%edx
51eba9:	8b 00                	mov    (%eax),%eax
51ebab:	89 55 cc             	mov    %edx,-0x34(%ebp)
51ebae:	89 45 c4             	mov    %eax,-0x3c(%ebp)
51ebb1:	85 c0                	test   %eax,%eax
51ebb3:	0f 8e df 00 00 00    	jle    0x51ec98
51ebb9:	b9 01 00 00 00       	mov    $0x1,%ecx
51ebbe:	66 90                	xchg   %ax,%ax
51ebc0:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
51ebc4:	8b 02                	mov    (%edx),%eax
51ebc6:	89 45 c0             	mov    %eax,-0x40(%ebp)
51ebc9:	74 77                	je     0x51ec42
51ebcb:	66 89 4d f0          	mov    %cx,-0x10(%ebp)
51ebcf:	c7 45 e0 c0 12 50 00 	movl   $0x5012c0,-0x20(%ebp)
51ebd6:	c7 45 e4 f0 c7 53 00 	movl   $0x53c7f0,-0x1c(%ebp)
51ebdd:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
51ebe4:	85 c0                	test   %eax,%eax
51ebe6:	74 5a                	je     0x51ec42
51ebe8:	50                   	push   %eax
51ebe9:	8d 45 dc             	lea    -0x24(%ebp),%eax
51ebec:	50                   	push   %eax
51ebed:	e8 be 13 04 00       	call   0x55ffb0
51ebf2:	83 c4 08             	add    $0x8,%esp
51ebf5:	66 83 7d f0 00       	cmpw   $0x0,-0x10(%ebp)
51ebfa:	75 43                	jne    0x51ec3f
51ebfc:	8b 13                	mov    (%ebx),%edx
51ebfe:	80 7a 51 00          	cmpb   $0x0,0x51(%edx)
51ec02:	75 2d                	jne    0x51ec31
51ec04:	8b 45 c8             	mov    -0x38(%ebp),%eax
51ec07:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
51ec0a:	8b 43 68             	mov    0x68(%ebx),%eax
51ec0d:	ff 74 88 10          	push   0x10(%eax,%ecx,4)
51ec11:	8d 34 88             	lea    (%eax,%ecx,4),%esi
51ec14:	0f be 46 01          	movsbl 0x1(%esi),%eax
51ec18:	50                   	push   %eax
51ec19:	52                   	push   %edx
51ec1a:	e8 91 50 fe ff       	call   0x503cb0
51ec1f:	66 c7 06 ad 00       	movw   $0xad,(%esi)
51ec24:	83 c4 0c             	add    $0xc,%esp
51ec27:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
51ec2e:	8b 75 b8             	mov    -0x48(%ebp),%esi
51ec31:	81 66 04 ff ff ff fd 	andl   $0xfdffffff,0x4(%esi)
51ec38:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
51ec3f:	8b 45 c0             	mov    -0x40(%ebp),%eax
51ec42:	ff 75 d4             	push   -0x2c(%ebp)
51ec45:	50                   	push   %eax
51ec46:	57                   	push   %edi
51ec47:	e8 84 4f 00 00       	call   0x523bd0
51ec4c:	6a 01                	push   $0x1
51ec4e:	8d 45 fb             	lea    -0x5(%ebp),%eax
51ec51:	50                   	push   %eax
51ec52:	ff 75 d0             	push   -0x30(%ebp)
51ec55:	6a 01                	push   $0x1
51ec57:	ff 75 d4             	push   -0x2c(%ebp)
51ec5a:	6a 5b                	push   $0x5b
51ec5c:	53                   	push   %ebx
51ec5d:	e8 2e 2f 02 00       	call   0x541b90
51ec62:	6a 01                	push   $0x1
51ec64:	ff 75 d4             	push   -0x2c(%ebp)
51ec67:	ff 75 d0             	push   -0x30(%ebp)
51ec6a:	ff 75 10             	push   0x10(%ebp)
51ec6d:	68 83 00 00 00       	push   $0x83
51ec72:	53                   	push   %ebx
51ec73:	e8 98 2f 02 00       	call   0x541c10
51ec78:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
51ec7b:	83 c4 40             	add    $0x40,%esp
51ec7e:	8b 55 cc             	mov    -0x34(%ebp),%edx
51ec81:	49                   	dec    %ecx
51ec82:	83 c2 14             	add    $0x14,%edx
51ec85:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
51ec88:	85 c9                	test   %ecx,%ecx
51ec8a:	89 55 cc             	mov    %edx,-0x34(%ebp)
51ec8d:	b9 01 00 00 00       	mov    $0x1,%ecx
51ec92:	0f 8f 28 ff ff ff    	jg     0x51ebc0
51ec98:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
51ec9b:	85 c9                	test   %ecx,%ecx
51ec9d:	74 14                	je     0x51ecb3
51ec9f:	8a 47 13             	mov    0x13(%edi),%al
51eca2:	3c 08                	cmp    $0x8,%al
51eca4:	73 0d                	jae    0x51ecb3
51eca6:	0f b6 c0             	movzbl %al,%eax
51eca9:	89 8c 87 94 00 00 00 	mov    %ecx,0x94(%edi,%eax,4)
51ecb0:	fe 47 13             	incb   0x13(%edi)
51ecb3:	8b 4d d0             	mov    -0x30(%ebp),%ecx
51ecb6:	85 c9                	test   %ecx,%ecx
51ecb8:	74 14                	je     0x51ecce
51ecba:	8a 47 13             	mov    0x13(%edi),%al
51ecbd:	3c 08                	cmp    $0x8,%al
51ecbf:	73 0d                	jae    0x51ecce
51ecc1:	0f b6 c0             	movzbl %al,%eax
51ecc4:	89 8c 87 94 00 00 00 	mov    %ecx,0x94(%edi,%eax,4)
51eccb:	fe 47 13             	incb   0x13(%edi)
51ecce:	8b 45 d8             	mov    -0x28(%ebp),%eax
51ecd1:	85 c0                	test   %eax,%eax
51ecd3:	74 4c                	je     0x51ed21
51ecd5:	8b 0b                	mov    (%ebx),%ecx
51ecd7:	80 79 51 00          	cmpb   $0x0,0x51(%ecx)
51ecdb:	74 0e                	je     0x51eceb
51ecdd:	50                   	push   %eax
51ecde:	6a f7                	push   $0xfffffff7
51ece0:	51                   	push   %ecx
51ece1:	e8 ca 4f fe ff       	call   0x503cb0
51ece6:	83 c4 0c             	add    $0xc,%esp
51ece9:	eb 36                	jmp    0x51ed21
51eceb:	8b 45 bc             	mov    -0x44(%ebp),%eax
51ecee:	85 c0                	test   %eax,%eax
51ecf0:	79 04                	jns    0x51ecf6
51ecf2:	8b 43 6c             	mov    0x6c(%ebx),%eax
51ecf5:	48                   	dec    %eax
51ecf6:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
51ecf9:	8b 43 68             	mov    0x68(%ebx),%eax
51ecfc:	80 7c 88 01 00       	cmpb   $0x0,0x1(%eax,%ecx,4)
51ed01:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
51ed04:	74 11                	je     0x51ed17
51ed06:	6a f7                	push   $0xfffffff7
51ed08:	ff 75 d8             	push   -0x28(%ebp)
51ed0b:	51                   	push   %ecx
51ed0c:	53                   	push   %ebx
51ed0d:	e8 2e af 03 00       	call   0x559c40
51ed12:	83 c4 10             	add    $0x10,%esp
51ed15:	eb 0a                	jmp    0x51ed21
51ed17:	8b 45 d8             	mov    -0x28(%ebp),%eax
51ed1a:	89 41 10             	mov    %eax,0x10(%ecx)
51ed1d:	c6 41 01 f7          	movb   $0xf7,0x1(%ecx)
51ed21:	8b 4d c8             	mov    -0x38(%ebp),%ecx
51ed24:	85 c9                	test   %ecx,%ecx
51ed26:	0f 84 a9 00 00 00    	je     0x51edd5
51ed2c:	8b 53 6c             	mov    0x6c(%ebx),%edx
51ed2f:	79 03                	jns    0x51ed34
51ed31:	8d 4a ff             	lea    -0x1(%edx),%ecx
51ed34:	8b 03                	mov    (%ebx),%eax
51ed36:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
51ed3a:	74 07                	je     0x51ed43
51ed3c:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
51ed41:	eb 09                	jmp    0x51ed4c
51ed43:	8b 43 68             	mov    0x68(%ebx),%eax
51ed46:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
51ed49:	8d 04 88             	lea    (%eax,%ecx,4),%eax
51ed4c:	89 50 08             	mov    %edx,0x8(%eax)
51ed4f:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
51ed52:	8b 56 30             	mov    0x30(%esi),%edx
51ed55:	39 4b 70             	cmp    %ecx,0x70(%ebx)
51ed58:	7f 12                	jg     0x51ed6c
51ed5a:	6a 00                	push   $0x0
51ed5c:	6a 00                	push   $0x0
51ed5e:	52                   	push   %edx
51ed5f:	6a 41                	push   $0x41
51ed61:	53                   	push   %ebx
51ed62:	e8 99 77 fe ff       	call   0x506500
51ed67:	83 c4 14             	add    $0x14,%esp
51ed6a:	eb 32                	jmp    0x51ed9e
51ed6c:	8b 75 b8             	mov    -0x48(%ebp),%esi
51ed6f:	8d 41 01             	lea    0x1(%ecx),%eax
51ed72:	89 43 6c             	mov    %eax,0x6c(%ebx)
51ed75:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
51ed78:	8b 43 68             	mov    0x68(%ebx),%eax
51ed7b:	c7 04 88 41 00 00 00 	movl   $0x41,(%eax,%ecx,4)
51ed82:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
51ed86:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
51ed8d:	00
51ed8e:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
51ed95:	00
51ed96:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
51ed9d:	00
51ed9e:	8b 4e 2c             	mov    0x2c(%esi),%ecx
51eda1:	83 e9 01             	sub    $0x1,%ecx
51eda4:	8b 53 6c             	mov    0x6c(%ebx),%edx
51eda7:	79 03                	jns    0x51edac
51eda9:	8d 4a ff             	lea    -0x1(%edx),%ecx
51edac:	8b 03                	mov    (%ebx),%eax
51edae:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
51edb2:	74 07                	je     0x51edbb
51edb4:	b9 ec 02 73 00       	mov    $0x7302ec,%ecx
51edb9:	eb 09                	jmp    0x51edc4
51edbb:	8b 43 68             	mov    0x68(%ebx),%eax
51edbe:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
51edc1:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
51edc4:	8d 42 ff             	lea    -0x1(%edx),%eax
51edc7:	89 41 04             	mov    %eax,0x4(%ecx)
51edca:	c6 47 13 00          	movb   $0x0,0x13(%edi)
51edce:	c7 47 1c 00 00 00 00 	movl   $0x0,0x1c(%edi)
51edd5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51edd8:	5f                   	pop    %edi
51edd9:	5e                   	pop    %esi
51edda:	33 cd                	xor    %ebp,%ecx
51eddc:	5b                   	pop    %ebx
51eddd:	e8 f8 26 0c 00       	call   0x5e14da
51ede2:	8b e5                	mov    %ebp,%esp
51ede4:	5d                   	pop    %ebp
51ede5:	c3                   	ret
51ede6:	cc                   	int3
51ede7:	cc                   	int3
51ede8:	cc                   	int3
51ede9:	cc                   	int3
51edea:	cc                   	int3
51edeb:	cc                   	int3
51edec:	cc                   	int3
51eded:	cc                   	int3
51edee:	cc                   	int3
51edef:	cc                   	int3
51edf0:	55                   	push   %ebp
51edf1:	8b ec                	mov    %esp,%ebp
51edf3:	56                   	push   %esi
51edf4:	8b 75 0c             	mov    0xc(%ebp),%esi
51edf7:	85 f6                	test   %esi,%esi
51edf9:	74 49                	je     0x51ee44
51edfb:	53                   	push   %ebx
51edfc:	8b 5d 24             	mov    0x24(%ebp),%ebx
51edff:	57                   	push   %edi
51ee00:	8b 7d 28             	mov    0x28(%ebp),%edi
51ee03:	0f b6 46 08          	movzbl 0x8(%esi),%eax
51ee07:	3b 45 10             	cmp    0x10(%ebp),%eax
51ee0a:	75 2f                	jne    0x51ee3b
51ee0c:	0f b6 46 09          	movzbl 0x9(%esi),%eax
51ee10:	3b 45 18             	cmp    0x18(%ebp),%eax
51ee13:	75 26                	jne    0x51ee3b
51ee15:	ff 75 14             	push   0x14(%ebp)
51ee18:	ff 76 10             	push   0x10(%esi)
51ee1b:	e8 a0 91 fd ff       	call   0x4f7fc0
51ee20:	83 c4 08             	add    $0x8,%esp
51ee23:	85 c0                	test   %eax,%eax
51ee25:	74 14                	je     0x51ee3b
51ee27:	57                   	push   %edi
51ee28:	53                   	push   %ebx
51ee29:	ff 75 20             	push   0x20(%ebp)
51ee2c:	ff 75 1c             	push   0x1c(%ebp)
51ee2f:	56                   	push   %esi
51ee30:	ff 75 08             	push   0x8(%ebp)
51ee33:	e8 18 00 00 00       	call   0x51ee50
51ee38:	83 c4 18             	add    $0x18,%esp
51ee3b:	8b 76 20             	mov    0x20(%esi),%esi
51ee3e:	85 f6                	test   %esi,%esi
51ee40:	75 c1                	jne    0x51ee03
51ee42:	5f                   	pop    %edi
51ee43:	5b                   	pop    %ebx
51ee44:	5e                   	pop    %esi
51ee45:	5d                   	pop    %ebp
51ee46:	c3                   	ret
51ee47:	cc                   	int3
51ee48:	cc                   	int3
51ee49:	cc                   	int3
51ee4a:	cc                   	int3
51ee4b:	cc                   	int3
51ee4c:	cc                   	int3
51ee4d:	cc                   	int3
51ee4e:	cc                   	int3
51ee4f:	cc                   	int3
51ee50:	55                   	push   %ebp
51ee51:	8b ec                	mov    %esp,%ebp
51ee53:	83 ec 08             	sub    $0x8,%esp
51ee56:	53                   	push   %ebx
51ee57:	56                   	push   %esi
51ee58:	8b 75 08             	mov    0x8(%ebp),%esi
51ee5b:	57                   	push   %edi
51ee5c:	8b 5e 08             	mov    0x8(%esi),%ebx
51ee5f:	85 db                	test   %ebx,%ebx
51ee61:	75 1c                	jne    0x51ee7f
51ee63:	39 5e 74             	cmp    %ebx,0x74(%esi)
51ee66:	75 0c                	jne    0x51ee74
51ee68:	8b 06                	mov    (%esi),%eax
51ee6a:	f6 40 4c 08          	testb  $0x8,0x4c(%eax)
51ee6e:	75 04                	jne    0x51ee74
51ee70:	c6 46 17 01          	movb   $0x1,0x17(%esi)
51ee74:	56                   	push   %esi
51ee75:	e8 96 35 02 00       	call   0x542410
51ee7a:	83 c4 04             	add    $0x4,%esp
51ee7d:	8b d8                	mov    %eax,%ebx
51ee7f:	8b 4e 74             	mov    0x74(%esi),%ecx
51ee82:	8b d6                	mov    %esi,%edx
51ee84:	8b 45 18             	mov    0x18(%ebp),%eax
51ee87:	85 c9                	test   %ecx,%ecx
51ee89:	8b 7d 0c             	mov    0xc(%ebp),%edi
51ee8c:	0f 45 d1             	cmovne %ecx,%edx
51ee8f:	8b 92 04 01 00 00    	mov    0x104(%edx),%edx
51ee95:	85 d2                	test   %edx,%edx
51ee97:	74 17                	je     0x51eeb0
51ee99:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
51eea0:	39 3a                	cmp    %edi,(%edx)
51eea2:	75 05                	jne    0x51eea9
51eea4:	39 42 0c             	cmp    %eax,0xc(%edx)
51eea7:	74 17                	je     0x51eec0
51eea9:	8b 52 04             	mov    0x4(%edx),%edx
51eeac:	85 d2                	test   %edx,%edx
51eeae:	75 f0                	jne    0x51eea0
51eeb0:	50                   	push   %eax
51eeb1:	ff 75 10             	push   0x10(%ebp)
51eeb4:	57                   	push   %edi
51eeb5:	56                   	push   %esi
51eeb6:	e8 05 b4 fd ff       	call   0x4fa2c0
51eebb:	83 c4 10             	add    $0x10,%esp
51eebe:	8b d0                	mov    %eax,%edx
51eec0:	85 d2                	test   %edx,%edx
51eec2:	74 5f                	je     0x51ef23
51eec4:	83 3f 00             	cmpl   $0x0,(%edi)
51eec7:	74 1f                	je     0x51eee8
51eec9:	8b 0e                	mov    (%esi),%ecx
51eecb:	8b 41 20             	mov    0x20(%ecx),%eax
51eece:	25 00 20 00 00       	and    $0x2000,%eax
51eed3:	89 45 f8             	mov    %eax,-0x8(%ebp)
51eed6:	b8 00 00 00 00       	mov    $0x0,%eax
51eedb:	75 0b                	jne    0x51eee8
51eedd:	c7 45 08 01 00 00 00 	movl   $0x1,0x8(%ebp)
51eee4:	85 c0                	test   %eax,%eax
51eee6:	74 07                	je     0x51eeef
51eee8:	c7 45 08 00 00 00 00 	movl   $0x0,0x8(%ebp)
51eeef:	ff 46 2c             	incl   0x2c(%esi)
51eef2:	6a fc                	push   $0xfffffffc
51eef4:	ff 72 08             	push   0x8(%edx)
51eef7:	ff 76 2c             	push   0x2c(%esi)
51eefa:	ff 75 1c             	push   0x1c(%ebp)