513c50:	89 55 e0             	mov    %edx,-0x20(%ebp)
513c53:	8b 55 f4             	mov    -0xc(%ebp),%edx
513c56:	0f 8c 34 fe ff ff    	jl     0x513a90
513c5c:	8b 75 e8             	mov    -0x18(%ebp),%esi
513c5f:	8b 76 38             	mov    0x38(%esi),%esi
513c62:	8b 5d ec             	mov    -0x14(%ebp),%ebx
513c65:	89 75 e8             	mov    %esi,-0x18(%ebp)
513c68:	85 f6                	test   %esi,%esi
513c6a:	0f 85 f5 fd ff ff    	jne    0x513a65
513c70:	8b 13                	mov    (%ebx),%edx
513c72:	33 c0                	xor    %eax,%eax
513c74:	85 d2                	test   %edx,%edx
513c76:	7e 15                	jle    0x513c8d
513c78:	8d 4b 10             	lea    0x10(%ebx),%ecx
513c7b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
513c80:	40                   	inc    %eax
513c81:	f6 01 04             	testb  $0x4,(%ecx)
513c84:	74 1a                	je     0x513ca0
513c86:	83 c1 14             	add    $0x14,%ecx
513c89:	3b c2                	cmp    %edx,%eax
513c8b:	7c f3                	jl     0x513c80
513c8d:	5f                   	pop    %edi
513c8e:	5e                   	pop    %esi
513c8f:	33 c0                	xor    %eax,%eax
513c91:	5b                   	pop    %ebx
513c92:	8b 4d fc             	mov    -0x4(%ebp),%ecx
513c95:	33 cd                	xor    %ebp,%ecx
513c97:	e8 3e d8 0c 00       	call   0x5e14da
513c9c:	8b e5                	mov    %ebp,%esp
513c9e:	5d                   	pop    %ebp
513c9f:	c3                   	ret
513ca0:	50                   	push   %eax
513ca1:	68 60 8f 6b 00       	push   $0x6b8f60
513ca6:	57                   	push   %edi
513ca7:	e8 b4 f5 00 00       	call   0x523260
513cac:	8b 4d fc             	mov    -0x4(%ebp),%ecx
513caf:	83 c4 0c             	add    $0xc,%esp
513cb2:	33 cd                	xor    %ebp,%ecx
513cb4:	b8 01 00 00 00       	mov    $0x1,%eax
513cb9:	5f                   	pop    %edi
513cba:	5e                   	pop    %esi
513cbb:	5b                   	pop    %ebx
513cbc:	e8 19 d8 0c 00       	call   0x5e14da
513cc1:	8b e5                	mov    %ebp,%esp
513cc3:	5d                   	pop    %ebp
513cc4:	c3                   	ret
513cc5:	cc                   	int3
513cc6:	cc                   	int3
513cc7:	cc                   	int3
513cc8:	cc                   	int3
513cc9:	cc                   	int3
513cca:	cc                   	int3
513ccb:	cc                   	int3
513ccc:	cc                   	int3
513ccd:	cc                   	int3
513cce:	cc                   	int3
513ccf:	cc                   	int3
513cd0:	55                   	push   %ebp
513cd1:	8b ec                	mov    %esp,%ebp
513cd3:	8b 55 08             	mov    0x8(%ebp),%edx
513cd6:	83 ec 2c             	sub    $0x2c,%esp
513cd9:	53                   	push   %ebx
513cda:	56                   	push   %esi
513cdb:	8b 75 0c             	mov    0xc(%ebp),%esi
513cde:	57                   	push   %edi
513cdf:	8b 7a 18             	mov    0x18(%edx),%edi
513ce2:	8a 0e                	mov    (%esi),%cl
513ce4:	0f b6 c1             	movzbl %cl,%eax
513ce7:	8b 1f                	mov    (%edi),%ebx
513ce9:	83 c0 ec             	add    $0xffffffec,%eax
513cec:	3d 95 00 00 00       	cmp    $0x95,%eax
513cf1:	0f 87 e4 05 00 00    	ja     0x5142db
513cf7:	0f b6 80 14 43 51 00 	movzbl 0x514314(%eax),%eax
513cfe:	ff 24 85 f8 42 51 00 	jmp    *0x5142f8(,%eax,4)
513d05:	80 f9 3b             	cmp    $0x3b,%cl
513d08:	75 1c                	jne    0x513d26
513d0a:	8b 56 08             	mov    0x8(%esi),%edx
513d0d:	33 c0                	xor    %eax,%eax
513d0f:	56                   	push   %esi
513d10:	57                   	push   %edi
513d11:	52                   	push   %edx
513d12:	50                   	push   %eax
513d13:	33 c9                	xor    %ecx,%ecx
513d15:	51                   	push   %ecx
513d16:	53                   	push   %ebx
513d17:	e8 44 4a ff ff       	call   0x508760
513d1c:	83 c4 18             	add    $0x18,%esp
513d1f:	5f                   	pop    %edi
513d20:	5e                   	pop    %esi
513d21:	5b                   	pop    %ebx
513d22:	8b e5                	mov    %ebp,%esp
513d24:	5d                   	pop    %ebp
513d25:	c3                   	ret
513d26:	f6 47 18 28          	testb  $0x28,0x18(%edi)
513d2a:	8b 56 0c             	mov    0xc(%esi),%edx
513d2d:	89 55 08             	mov    %edx,0x8(%ebp)
513d30:	74 14                	je     0x513d46
513d32:	6a 00                	push   $0x0
513d34:	68 68 8d 6b 00       	push   $0x6b8d68
513d39:	57                   	push   %edi
513d3a:	53                   	push   %ebx
513d3b:	e8 b0 7b ff ff       	call   0x50b8f0
513d40:	8b 55 08             	mov    0x8(%ebp),%edx
513d43:	83 c4 10             	add    $0x10,%esp
513d46:	8b 46 10             	mov    0x10(%esi),%eax
513d49:	80 38 3b             	cmpb   $0x3b,(%eax)
513d4c:	75 04                	jne    0x513d52
513d4e:	33 c9                	xor    %ecx,%ecx
513d50:	eb 09                	jmp    0x513d5b
513d52:	8b 4a 08             	mov    0x8(%edx),%ecx
513d55:	8b 50 0c             	mov    0xc(%eax),%edx
513d58:	8b 40 10             	mov    0x10(%eax),%eax
513d5b:	80 bb c8 00 00 00 02 	cmpb   $0x2,0xc8(%ebx)
513d62:	8b 72 08             	mov    0x8(%edx),%esi
513d65:	89 75 e4             	mov    %esi,-0x1c(%ebp)
513d68:	8b 70 08             	mov    0x8(%eax),%esi
513d6b:	89 75 e8             	mov    %esi,-0x18(%ebp)
513d6e:	8b 75 0c             	mov    0xc(%ebp),%esi
513d71:	89 4d 08             	mov    %ecx,0x8(%ebp)
513d74:	72 19                	jb     0x513d8f
513d76:	50                   	push   %eax
513d77:	56                   	push   %esi
513d78:	53                   	push   %ebx
513d79:	e8 82 41 02 00       	call   0x537f00
513d7e:	52                   	push   %edx
513d7f:	8d 46 2c             	lea    0x2c(%esi),%eax
513d82:	50                   	push   %eax
513d83:	53                   	push   %ebx
513d84:	e8 77 41 02 00       	call   0x537f00
513d89:	8b 4d 08             	mov    0x8(%ebp),%ecx
513d8c:	83 c4 18             	add    $0x18,%esp
513d8f:	8b 55 e8             	mov    -0x18(%ebp),%edx
513d92:	8b 45 e4             	mov    -0x1c(%ebp),%eax
513d95:	56                   	push   %esi
513d96:	57                   	push   %edi
513d97:	52                   	push   %edx
513d98:	50                   	push   %eax
513d99:	51                   	push   %ecx
513d9a:	53                   	push   %ebx
513d9b:	e8 c0 49 ff ff       	call   0x508760
513da0:	83 c4 18             	add    $0x18,%esp
513da3:	5f                   	pop    %edi
513da4:	5e                   	pop    %esi
513da5:	5b                   	pop    %ebx
513da6:	8b e5                	mov    %ebp,%esp
513da8:	5d                   	pop    %ebp
513da9:	c3                   	ret
513daa:	8b 46 14             	mov    0x14(%esi),%eax
513dad:	89 45 d8             	mov    %eax,-0x28(%ebp)
513db0:	85 c0                	test   %eax,%eax
513db2:	74 07                	je     0x513dbb
513db4:	8b 08                	mov    (%eax),%ecx
513db6:	89 4d e8             	mov    %ecx,-0x18(%ebp)
513db9:	eb 07                	jmp    0x513dc2
513dbb:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
513dc2:	8b 03                	mov    (%ebx),%eax
513dc4:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
513dcb:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
513dd2:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
513dd9:	8a 40 4e             	mov    0x4e(%eax),%al
513ddc:	88 45 e0             	mov    %al,-0x20(%ebp)
513ddf:	8d 47 18             	lea    0x18(%edi),%eax
513de2:	89 45 f8             	mov    %eax,-0x8(%ebp)
513de5:	8b 00                	mov    (%eax),%eax
513de7:	25 01 40 00 00       	and    $0x4001,%eax
513dec:	f7 46 04 00 00 00 01 	testl  $0x1000000,0x4(%esi)
513df3:	89 45 d4             	mov    %eax,-0x2c(%ebp)
513df6:	74 0c                	je     0x513e04
513df8:	8b 46 2c             	mov    0x2c(%esi),%eax
513dfb:	89 45 f0             	mov    %eax,-0x10(%ebp)
513dfe:	80 78 10 a3          	cmpb   $0xa3,0x10(%eax)
513e02:	75 05                	jne    0x513e09
513e04:	33 c9                	xor    %ecx,%ecx
513e06:	89 4d f0             	mov    %ecx,-0x10(%ebp)
513e09:	8b 46 08             	mov    0x8(%esi),%eax
513e0c:	50                   	push   %eax
513e0d:	89 45 f4             	mov    %eax,-0xc(%ebp)
513e10:	e8 7b 9e 02 00       	call   0x53dc90
513e15:	6a 00                	push   $0x0
513e17:	ff 75 e0             	push   -0x20(%ebp)
513e1a:	89 45 ec             	mov    %eax,-0x14(%ebp)
513e1d:	ff 75 e8             	push   -0x18(%ebp)
513e20:	ff 75 f4             	push   -0xc(%ebp)
513e23:	ff 33                	push   (%ebx)
513e25:	e8 f6 40 01 00       	call   0x527f20
513e2a:	8b d0                	mov    %eax,%edx
513e2c:	83 c4 18             	add    $0x18,%esp
513e2f:	89 55 0c             	mov    %edx,0xc(%ebp)
513e32:	85 d2                	test   %edx,%edx
513e34:	75 34                	jne    0x513e6a
513e36:	50                   	push   %eax
513e37:	ff 75 e0             	push   -0x20(%ebp)
513e3a:	6a fe                	push   $0xfffffffe
513e3c:	ff 75 f4             	push   -0xc(%ebp)
513e3f:	ff 33                	push   (%ebx)
513e41:	e8 da 40 01 00       	call   0x527f20
513e46:	8b c8                	mov    %eax,%ecx
513e48:	83 c4 14             	add    $0x14,%esp
513e4b:	89 4d 0c             	mov    %ecx,0xc(%ebp)
513e4e:	85 c9                	test   %ecx,%ecx
513e50:	75 0c                	jne    0x513e5e
513e52:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
513e59:	e9 4b 01 00 00       	jmp    0x513fa9
513e5e:	c7 45 dc 01 00 00 00 	movl   $0x1,-0x24(%ebp)
513e65:	e9 3f 01 00 00       	jmp    0x513fa9
513e6a:	33 c0                	xor    %eax,%eax
513e6c:	39 42 14             	cmp    %eax,0x14(%edx)
513e6f:	0f 95 c0             	setne  %al
513e72:	f7 42 04 00 04 00 00 	testl  $0x400,0x4(%edx)
513e79:	89 45 fc             	mov    %eax,-0x4(%ebp)
513e7c:	74 36                	je     0x513eb4
513e7e:	81 4e 04 00 00 04 00 	orl    $0x40000,0x4(%esi)
513e85:	83 7d e8 02          	cmpl   $0x2,-0x18(%ebp)
513e89:	75 6a                	jne    0x513ef5
513e8b:	8b 45 d8             	mov    -0x28(%ebp),%eax
513e8e:	ff 70 18             	push   0x18(%eax)
513e91:	e8 5a d6 fe ff       	call   0x5014f0
513e96:	83 c4 04             	add    $0x4,%esp
513e99:	89 46 1c             	mov    %eax,0x1c(%esi)
513e9c:	85 c0                	test   %eax,%eax
513e9e:	79 11                	jns    0x513eb1
513ea0:	68 80 8d 6b 00       	push   $0x6b8d80
513ea5:	53                   	push   %ebx
513ea6:	e8 b5 f3 00 00       	call   0x523260
513eab:	83 c4 08             	add    $0x8,%esp
513eae:	ff 47 14             	incl   0x14(%edi)
513eb1:	8b 55 0c             	mov    0xc(%ebp),%edx
513eb4:	6a 00                	push   $0x0
513eb6:	ff 72 20             	push   0x20(%edx)
513eb9:	6a 00                	push   $0x0
513ebb:	6a 1f                	push   $0x1f
513ebd:	53                   	push   %ebx
513ebe:	e8 dd 58 00 00       	call   0x5197a0
513ec3:	83 c4 14             	add    $0x14,%esp
513ec6:	85 c0                	test   %eax,%eax
513ec8:	74 46                	je     0x513f10
513eca:	83 f8 01             	cmp    $0x1,%eax
513ecd:	75 17                	jne    0x513ee6
513ecf:	8b 4d 0c             	mov    0xc(%ebp),%ecx
513ed2:	ff 71 20             	push   0x20(%ecx)
513ed5:	68 c8 8d 6b 00       	push   $0x6b8dc8
513eda:	53                   	push   %ebx
513edb:	e8 80 f3 00 00       	call   0x523260
513ee0:	83 c4 0c             	add    $0xc,%esp
513ee3:	ff 47 14             	incl   0x14(%edi)
513ee6:	5f                   	pop    %edi
513ee7:	c6 06 77             	movb   $0x77,(%esi)
513eea:	b8 01 00 00 00       	mov    $0x1,%eax
513eef:	5e                   	pop    %esi
513ef0:	5b                   	pop    %ebx
513ef1:	8b e5                	mov    %ebp,%esp
513ef3:	5d                   	pop    %ebp
513ef4:	c3                   	ret
513ef5:	8b 42 20             	mov    0x20(%edx),%eax
513ef8:	b9 00 00 80 07       	mov    $0x7800000,%ecx
513efd:	c7 45 e0 00 00 80 00 	movl   $0x800000,-0x20(%ebp)
513f04:	80 38 75             	cmpb   $0x75,(%eax)
513f07:	0f 44 4d e0          	cmove  -0x20(%ebp),%ecx
513f0b:	89 4e 1c             	mov    %ecx,0x1c(%esi)
513f0e:	eb a4                	jmp    0x513eb4
513f10:	8b 4d 0c             	mov    0xc(%ebp),%ecx
513f13:	f7 41 04 00 28 00 00 	testl  $0x2800,0x4(%ecx)
513f1a:	74 07                	je     0x513f23
513f1c:	81 4e 04 00 00 08 00 	orl    $0x80000,0x4(%esi)
513f23:	f7 41 04 00 08 00 00 	testl  $0x800,0x4(%ecx)
513f2a:	75 1e                	jne    0x513f4a
513f2c:	8b 45 f8             	mov    -0x8(%ebp),%eax
513f2f:	f6 00 2a             	testb  $0x2a,(%eax)
513f32:	74 2f                	je     0x513f63
513f34:	6a 00                	push   $0x0
513f36:	68 ec 8d 6b 00       	push   $0x6b8dec
513f3b:	57                   	push   %edi
513f3c:	53                   	push   %ebx
513f3d:	e8 ae 79 ff ff       	call   0x50b8f0
513f42:	8b 4d 0c             	mov    0xc(%ebp),%ecx
513f45:	83 c4 10             	add    $0x10,%esp
513f48:	eb 19                	jmp    0x513f63
513f4a:	8b 55 f8             	mov    -0x8(%ebp),%edx
513f4d:	8a 02                	mov    (%edx),%al
513f4f:	24 2e                	and    $0x2e,%al
513f51:	88 46 02             	mov    %al,0x2(%esi)
513f54:	f7 02 00 00 04 00    	testl  $0x40000,(%edx)
513f5a:	74 07                	je     0x513f63
513f5c:	81 4e 04 00 00 00 40 	orl    $0x40000000,0x4(%esi)
513f63:	8b 51 04             	mov    0x4(%ecx),%edx
513f66:	f7 c2 00 00 04 00    	test   $0x40000,%edx
513f6c:	74 1c                	je     0x513f8a
513f6e:	80 7b 12 00          	cmpb   $0x0,0x12(%ebx)
513f72:	75 16                	jne    0x513f8a
513f74:	8b 03                	mov    (%ebx),%eax
513f76:	f6 40 18 20          	testb  $0x20,0x18(%eax)
513f7a:	75 0e                	jne    0x513f8a
513f7c:	33 c9                	xor    %ecx,%ecx
513f7e:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
513f85:	89 4d 0c             	mov    %ecx,0xc(%ebp)
513f88:	eb 1f                	jmp    0x513fa9
513f8a:	f7 c2 00 00 28 00    	test   $0x280000,%edx
513f90:	74 17                	je     0x513fa9
513f92:	80 bb c8 00 00 00 02 	cmpb   $0x2,0xc8(%ebx)
513f99:	73 0e                	jae    0x513fa9
513f9b:	51                   	push   %ecx
513f9c:	56                   	push   %esi
513f9d:	53                   	push   %ebx
513f9e:	e8 5d 2a 01 00       	call   0x526a00
513fa3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
513fa6:	83 c4 0c             	add    $0xc,%esp
513fa9:	80 bb c8 00 00 00 02 	cmpb   $0x2,0xc8(%ebx)
513fb0:	ba 01 00 00 00       	mov    $0x1,%edx
513fb5:	0f 83 08 01 00 00    	jae    0x5140c3
513fbb:	8b 45 f0             	mov    -0x10(%ebp),%eax
513fbe:	85 c9                	test   %ecx,%ecx
513fc0:	74 1a                	je     0x513fdc
513fc2:	83 79 18 00          	cmpl   $0x0,0x18(%ecx)
513fc6:	75 14                	jne    0x513fdc
513fc8:	85 c0                	test   %eax,%eax
513fca:	74 10                	je     0x513fdc
513fcc:	ff 75 f4             	push   -0xc(%ebp)
513fcf:	ff 75 ec             	push   -0x14(%ebp)
513fd2:	68 08 8e 6b 00       	push   $0x6b8e08
513fd7:	e9 99 00 00 00       	jmp    0x514075
513fdc:	8b 55 fc             	mov    -0x4(%ebp),%edx
513fdf:	85 d2                	test   %edx,%edx
513fe1:	74 63                	je     0x514046
513fe3:	8b 55 f8             	mov    -0x8(%ebp),%edx
513fe6:	8b 12                	mov    (%edx),%edx
513fe8:	f6 c2 01             	test   $0x1,%dl
513feb:	74 1b                	je     0x514008
513fed:	f7 41 04 00 00 01 00 	testl  $0x10000,0x4(%ecx)
513ff4:	74 06                	je     0x513ffc
513ff6:	85 c0                	test   %eax,%eax
513ff8:	74 0e                	je     0x514008
513ffa:	eb 04                	jmp    0x514000
513ffc:	85 c0                	test   %eax,%eax
513ffe:	74 43                	je     0x514043
514000:	f7 c2 00 40 00 00    	test   $0x4000,%edx
514006:	75 3b                	jne    0x514043
514008:	f7 41 04 00 00 01 00 	testl  $0x10000,0x4(%ecx)
51400f:	75 09                	jne    0x51401a
514011:	85 c0                	test   %eax,%eax
514013:	b8 3c 8e 6b 00       	mov    $0x6b8e3c,%eax
514018:	74 05                	je     0x51401f
51401a:	b8 34 8e 6b 00       	mov    $0x6b8e34,%eax
51401f:	ff 75 f4             	push   -0xc(%ebp)
514022:	ff 75 ec             	push   -0x14(%ebp)
514025:	50                   	push   %eax
514026:	68 48 8e 6b 00       	push   $0x6b8e48
51402b:	53                   	push   %ebx
51402c:	e8 2f f2 00 00       	call   0x523260
514031:	83 c4 14             	add    $0x14,%esp
514034:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)