520c62:	74 58                	je     0x520cbc
520c64:	8b 00                	mov    (%eax),%eax
520c66:	8b 7c 24 14          	mov    0x14(%esp),%edi
520c6a:	f6 40 04 04          	testb  $0x4,0x4(%eax)
520c6e:	75 51                	jne    0x520cc1
520c70:	85 ff                	test   %edi,%edi
520c72:	75 4d                	jne    0x520cc1
520c74:	8d 44 24 0c          	lea    0xc(%esp),%eax
520c78:	50                   	push   %eax
520c79:	ff 74 24 20          	push   0x20(%esp)
520c7d:	e8 7e 02 fd ff       	call   0x4f0f00
520c82:	83 c4 08             	add    $0x8,%esp
520c85:	85 c0                	test   %eax,%eax
520c87:	7e 18                	jle    0x520ca1
520c89:	ff 74 24 0c          	push   0xc(%esp)
520c8d:	e8 de e8 fc ff       	call   0x4ef570
520c92:	50                   	push   %eax
520c93:	e8 58 fd fc ff       	call   0x4f09f0
520c98:	8b f8                	mov    %eax,%edi
520c9a:	83 c4 08             	add    $0x8,%esp
520c9d:	85 ff                	test   %edi,%edi
520c9f:	75 20                	jne    0x520cc1
520ca1:	6a 2a                	push   $0x2a
520ca3:	68 f4 10 64 00       	push   $0x6410f4
520ca8:	68 9e 00 00 00       	push   $0x9e
520cad:	68 a1 00 00 00       	push   $0xa1
520cb2:	6a 06                	push   $0x6
520cb4:	e8 c7 82 fb ff       	call   0x4d8f80
520cb9:	83 c4 14             	add    $0x14,%esp
520cbc:	5f                   	pop    %edi
520cbd:	33 c0                	xor    %eax,%eax
520cbf:	5e                   	pop    %esi
520cc0:	c3                   	ret
520cc1:	83 7c 24 20 00       	cmpl   $0x0,0x20(%esp)
520cc6:	8b 46 10             	mov    0x10(%esi),%eax
520cc9:	8b 08                	mov    (%eax),%ecx
520ccb:	74 46                	je     0x520d13
520ccd:	8b 51 44             	mov    0x44(%ecx),%edx
520cd0:	85 d2                	test   %edx,%edx
520cd2:	74 17                	je     0x520ceb
520cd4:	56                   	push   %esi
520cd5:	50                   	push   %eax
520cd6:	ff d2                	call   *%edx
520cd8:	83 c4 08             	add    $0x8,%esp
520cdb:	85 c0                	test   %eax,%eax
520cdd:	7e dd                	jle    0x520cbc
520cdf:	8b 46 10             	mov    0x10(%esi),%eax
520ce2:	c7 40 10 80 00 00 00 	movl   $0x80,0x10(%eax)
520ce9:	eb 6d                	jmp    0x520d58
520ceb:	83 79 70 00          	cmpl   $0x0,0x70(%ecx)
520cef:	74 10                	je     0x520d01
520cf1:	c7 40 10 10 00 00 00 	movl   $0x10,0x10(%eax)
520cf8:	c7 46 14 d0 0d 52 00 	movl   $0x520dd0,0x14(%esi)
520cff:	eb 57                	jmp    0x520d58
520d01:	50                   	push   %eax
520d02:	e8 69 9f 03 00       	call   0x55ac70
520d07:	83 c4 04             	add    $0x4,%esp
520d0a:	85 c0                	test   %eax,%eax
520d0c:	7f 4a                	jg     0x520d58
520d0e:	5f                   	pop    %edi
520d0f:	33 c0                	xor    %eax,%eax
520d11:	5e                   	pop    %esi
520d12:	c3                   	ret
520d13:	8b 51 3c             	mov    0x3c(%ecx),%edx
520d16:	85 d2                	test   %edx,%edx
520d18:	74 17                	je     0x520d31
520d1a:	56                   	push   %esi
520d1b:	50                   	push   %eax
520d1c:	ff d2                	call   *%edx
520d1e:	83 c4 08             	add    $0x8,%esp
520d21:	85 c0                	test   %eax,%eax
520d23:	7e 97                	jle    0x520cbc
520d25:	8b 46 10             	mov    0x10(%esi),%eax
520d28:	c7 40 10 40 00 00 00 	movl   $0x40,0x10(%eax)
520d2f:	eb 27                	jmp    0x520d58
520d31:	83 79 6c 00          	cmpl   $0x0,0x6c(%ecx)
520d35:	74 10                	je     0x520d47
520d37:	c7 40 10 08 00 00 00 	movl   $0x8,0x10(%eax)
520d3e:	c7 46 14 d0 0d 52 00 	movl   $0x520dd0,0x14(%esi)
520d45:	eb 11                	jmp    0x520d58
520d47:	50                   	push   %eax
520d48:	e8 53 9e 03 00       	call   0x55aba0
520d4d:	83 c4 04             	add    $0x4,%esp
520d50:	85 c0                	test   %eax,%eax
520d52:	0f 8e 64 ff ff ff    	jle    0x520cbc
520d58:	57                   	push   %edi
520d59:	6a 00                	push   $0x0
520d5b:	6a 01                	push   $0x1
520d5d:	68 f8 00 00 00       	push   $0xf8
520d62:	6a ff                	push   $0xffffffff
520d64:	ff 76 10             	push   0x10(%esi)
520d67:	e8 64 62 fc ff       	call   0x4e6fd0
520d6c:	83 c4 18             	add    $0x18,%esp
520d6f:	85 c0                	test   %eax,%eax
520d71:	0f 8e 45 ff ff ff    	jle    0x520cbc
520d77:	8b 4c 24 10          	mov    0x10(%esp),%ecx
520d7b:	85 c9                	test   %ecx,%ecx
520d7d:	74 05                	je     0x520d84
520d7f:	8b 46 10             	mov    0x10(%esi),%eax
520d82:	89 01                	mov    %eax,(%ecx)
520d84:	8b 46 10             	mov    0x10(%esi),%eax
520d87:	8b 00                	mov    (%eax),%eax
520d89:	f6 40 04 04          	testb  $0x4,0x4(%eax)
520d8d:	75 2f                	jne    0x520dbe
520d8f:	ff 74 24 18          	push   0x18(%esp)
520d93:	57                   	push   %edi
520d94:	56                   	push   %esi
520d95:	e8 86 9e ff ff       	call   0x51ac20
520d9a:	83 c4 0c             	add    $0xc,%esp
520d9d:	85 c0                	test   %eax,%eax
520d9f:	0f 84 17 ff ff ff    	je     0x520cbc
520da5:	8b 4e 10             	mov    0x10(%esi),%ecx
520da8:	8b 01                	mov    (%ecx),%eax
520daa:	8b 80 80 00 00 00    	mov    0x80(%eax),%eax
520db0:	85 c0                	test   %eax,%eax
520db2:	74 0a                	je     0x520dbe
520db4:	56                   	push   %esi
520db5:	51                   	push   %ecx
520db6:	ff d0                	call   *%eax
520db8:	83 c4 08             	add    $0x8,%esp
520dbb:	5f                   	pop    %edi
520dbc:	5e                   	pop    %esi
520dbd:	c3                   	ret
520dbe:	5f                   	pop    %edi
520dbf:	b8 01 00 00 00       	mov    $0x1,%eax
520dc4:	5e                   	pop    %esi
520dc5:	c3                   	ret
520dc6:	cc                   	int3
520dc7:	cc                   	int3
520dc8:	cc                   	int3
520dc9:	cc                   	int3
520dca:	cc                   	int3
520dcb:	cc                   	int3
520dcc:	cc                   	int3
520dcd:	cc                   	int3
520dce:	cc                   	int3
520dcf:	cc                   	int3
520dd0:	6a 14                	push   $0x14
520dd2:	68 f4 10 64 00       	push   $0x6410f4
520dd7:	68 b1 00 00 00       	push   $0xb1
520ddc:	68 ad 00 00 00       	push   $0xad
520de1:	6a 06                	push   $0x6
520de3:	e8 98 81 fb ff       	call   0x4d8f80
520de8:	83 c4 14             	add    $0x14,%esp
520deb:	33 c0                	xor    %eax,%eax
520ded:	c3                   	ret
520dee:	cc                   	int3
520def:	cc                   	int3
520df0:	b8 0c 11 64 00       	mov    $0x64110c,%eax
520df5:	c3                   	ret
520df6:	cc                   	int3
520df7:	cc                   	int3
520df8:	cc                   	int3
520df9:	cc                   	int3
520dfa:	cc                   	int3
520dfb:	cc                   	int3
520dfc:	cc                   	int3
520dfd:	cc                   	int3
520dfe:	cc                   	int3
520dff:	cc                   	int3
520e00:	8b 4c 24 04          	mov    0x4(%esp),%ecx
520e04:	8b 44 24 08          	mov    0x8(%esp),%eax
520e08:	89 01                	mov    %eax,(%ecx)
520e0a:	8b 44 24 0c          	mov    0xc(%esp),%eax
520e0e:	89 41 04             	mov    %eax,0x4(%ecx)
520e11:	8b 44 24 10          	mov    0x10(%esp),%eax
520e15:	89 41 08             	mov    %eax,0x8(%ecx)
520e18:	8b 44 24 14          	mov    0x14(%esp),%eax
520e1c:	89 41 0c             	mov    %eax,0xc(%ecx)
520e1f:	c3                   	ret
520e20:	8b 44 24 04          	mov    0x4(%esp),%eax
520e24:	8b 40 2c             	mov    0x2c(%eax),%eax
520e27:	c3                   	ret
520e28:	cc                   	int3
520e29:	cc                   	int3
520e2a:	cc                   	int3
520e2b:	cc                   	int3
520e2c:	cc                   	int3
520e2d:	cc                   	int3
520e2e:	cc                   	int3
520e2f:	cc                   	int3
520e30:	56                   	push   %esi
520e31:	8b 74 24 08          	mov    0x8(%esp),%esi
520e35:	6a ff                	push   $0xffffffff
520e37:	6a ff                	push   $0xffffffff
520e39:	56                   	push   %esi
520e3a:	e8 d1 b6 03 00       	call   0x55c510
520e3f:	8b 4c 24 18          	mov    0x18(%esp),%ecx
520e43:	83 c4 0c             	add    $0xc,%esp
520e46:	85 c9                	test   %ecx,%ecx
520e48:	74 05                	je     0x520e4f
520e4a:	8b 46 60             	mov    0x60(%esi),%eax
520e4d:	89 01                	mov    %eax,(%ecx)
520e4f:	8b 4c 24 10          	mov    0x10(%esp),%ecx
520e53:	85 c9                	test   %ecx,%ecx
520e55:	74 05                	je     0x520e5c
520e57:	8b 46 64             	mov    0x64(%esi),%eax
520e5a:	89 01                	mov    %eax,(%ecx)
520e5c:	8b 4c 24 14          	mov    0x14(%esp),%ecx
520e60:	85 c9                	test   %ecx,%ecx
520e62:	74 05                	je     0x520e69
520e64:	8b 46 68             	mov    0x68(%esi),%eax
520e67:	89 01                	mov    %eax,(%ecx)
520e69:	8b 4c 24 18          	mov    0x18(%esp),%ecx
520e6d:	85 c9                	test   %ecx,%ecx
520e6f:	74 05                	je     0x520e76
520e71:	8b 46 6c             	mov    0x6c(%esi),%eax
520e74:	89 01                	mov    %eax,(%ecx)
520e76:	8b 46 6c             	mov    0x6c(%esi),%eax
520e79:	83 e0 01             	and    $0x1,%eax
520e7c:	5e                   	pop    %esi
520e7d:	c3                   	ret
520e7e:	cc                   	int3
520e7f:	cc                   	int3
520e80:	8b 44 24 04          	mov    0x4(%esp),%eax
520e84:	ff 30                	push   (%eax)
520e86:	e8 35 85 fe ff       	call   0x5093c0
520e8b:	83 c4 04             	add    $0x4,%esp
520e8e:	c3                   	ret
520e8f:	cc                   	int3
520e90:	8b 44 24 04          	mov    0x4(%esp),%eax
520e94:	85 c0                	test   %eax,%eax
520e96:	75 01                	jne    0x520e99
520e98:	c3                   	ret
520e99:	83 c0 1c             	add    $0x1c,%eax
520e9c:	89 44 24 04          	mov    %eax,0x4(%esp)
520ea0:	e9 fb ad 03 00       	jmp    0x55bca0
520ea5:	cc                   	int3
520ea6:	cc                   	int3
520ea7:	cc                   	int3
520ea8:	cc                   	int3
520ea9:	cc                   	int3
520eaa:	cc                   	int3
520eab:	cc                   	int3
520eac:	cc                   	int3
520ead:	cc                   	int3
520eae:	cc                   	int3
520eaf:	cc                   	int3
520eb0:	8b 44 24 04          	mov    0x4(%esp),%eax
520eb4:	b9 01 00 00 00       	mov    $0x1,%ecx
520eb9:	83 c0 70             	add    $0x70,%eax
520ebc:	f0 0f c1 08          	lock xadd %ecx,(%eax)
520ec0:	41                   	inc    %ecx
520ec1:	33 c0                	xor    %eax,%eax
520ec3:	83 f9 01             	cmp    $0x1,%ecx
520ec6:	0f 9f c0             	setg   %al
520ec9:	c3                   	ret
520eca:	cc                   	int3
520ecb:	cc                   	int3
520ecc:	cc                   	int3
520ecd:	cc                   	int3
520ece:	cc                   	int3
520ecf:	cc                   	int3
520ed0:	b8 04 00 00 00       	mov    $0x4,%eax
520ed5:	e8 d6 08 0b 00       	call   0x5d17b0
520eda:	53                   	push   %ebx
520edb:	56                   	push   %esi
520edc:	57                   	push   %edi
520edd:	8b 7c 24 14          	mov    0x14(%esp),%edi
520ee1:	8d 44 24 0c          	lea    0xc(%esp),%eax
520ee5:	50                   	push   %eax
520ee6:	8d 77 60             	lea    0x60(%edi),%esi
520ee9:	8d 44 24 18          	lea    0x18(%esp),%eax
520eed:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
520ef3:	50                   	push   %eax
520ef4:	8d 5f 48             	lea    0x48(%edi),%ebx
520ef7:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
520efe:	c7 46 08 ff ff ff ff 	movl   $0xffffffff,0x8(%esi)
520f05:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
520f0c:	ff 33                	push   (%ebx)
520f0e:	e8 ed e6 fc ff       	call   0x4ef600
520f13:	83 c4 04             	add    $0x4,%esp
520f16:	50                   	push   %eax
520f17:	e8 94 b2 fe ff       	call   0x50c1b0
520f1c:	83 c4 0c             	add    $0xc,%esp
520f1f:	85 c0                	test   %eax,%eax
520f21:	74 7f                	je     0x520fa2
520f23:	8b 44 24 0c          	mov    0xc(%esp),%eax
520f27:	85 c0                	test   %eax,%eax
520f29:	74 77                	je     0x520fa2
520f2b:	8b 4c 24 14          	mov    0x14(%esp),%ecx
520f2f:	89 46 04             	mov    %eax,0x4(%esi)
520f32:	85 c9                	test   %ecx,%ecx
520f34:	75 2d                	jne    0x520f63
520f36:	50                   	push   %eax
520f37:	51                   	push   %ecx
520f38:	e8 63 b7 fe ff       	call   0x50c6a0
520f3d:	83 c4 08             	add    $0x8,%esp
520f40:	85 c0                	test   %eax,%eax
520f42:	74 5e                	je     0x520fa2
520f44:	8b 48 70             	mov    0x70(%eax),%ecx
520f47:	85 c9                	test   %ecx,%ecx
520f49:	74 57                	je     0x520fa2
520f4b:	8d 47 50             	lea    0x50(%edi),%eax
520f4e:	50                   	push   %eax
520f4f:	53                   	push   %ebx
520f50:	56                   	push   %esi
520f51:	ff d1                	call   *%ecx
520f53:	83 c4 0c             	add    $0xc,%esp
520f56:	85 c0                	test   %eax,%eax
520f58:	74 48                	je     0x520fa2
520f5a:	83 4e 0c 01          	orl    $0x1,0xc(%esi)
520f5e:	5f                   	pop    %edi
520f5f:	5e                   	pop    %esi
520f60:	5b                   	pop    %ebx
520f61:	59                   	pop    %ecx
520f62:	c3                   	ret
520f63:	83 4e 0c 01          	orl    $0x1,0xc(%esi)
520f67:	51                   	push   %ecx
520f68:	89 0e                	mov    %ecx,(%esi)
520f6a:	e8 01 e6 fc ff       	call   0x4ef570
520f6f:	50                   	push   %eax
520f70:	e8 7b fa fc ff       	call   0x4f09f0
520f75:	83 c4 08             	add    $0x8,%esp
520f78:	85 c0                	test   %eax,%eax
520f7a:	74 26                	je     0x520fa2
520f7c:	50                   	push   %eax
520f7d:	e8 3e f9 fc ff       	call   0x4f08c0
520f82:	c1 e0 02             	shl    $0x2,%eax
520f85:	83 c4 04             	add    $0x4,%esp
520f88:	89 46 08             	mov    %eax,0x8(%esi)
520f8b:	8b 44 24 14          	mov    0x14(%esp),%eax
520f8f:	83 f8 40             	cmp    $0x40,%eax
520f92:	74 0a                	je     0x520f9e
520f94:	05 60 fd ff ff       	add    $0xfffffd60,%eax
520f99:	83 f8 02             	cmp    $0x2,%eax
520f9c:	77 04                	ja     0x520fa2
520f9e:	83 4e 0c 02          	orl    $0x2,0xc(%esi)
520fa2:	5f                   	pop    %edi
520fa3:	5e                   	pop    %esi
520fa4:	5b                   	pop    %ebx
520fa5:	59                   	pop    %ecx
520fa6:	c3                   	ret
520fa7:	cc                   	int3
520fa8:	cc                   	int3
520fa9:	cc                   	int3
520faa:	cc                   	int3
520fab:	cc                   	int3
520fac:	cc                   	int3
520fad:	cc                   	int3
520fae:	cc                   	int3
520faf:	cc                   	int3
520fb0:	83 7c 24 04 02       	cmpl   $0x2,0x4(%esp)
520fb5:	75 1a                	jne    0x520fd1
520fb7:	8b 44 24 08          	mov    0x8(%esp),%eax
520fbb:	8b 00                	mov    (%eax),%eax
520fbd:	8b 40 08             	mov    0x8(%eax),%eax
520fc0:	85 c0                	test   %eax,%eax
520fc2:	74 0d                	je     0x520fd1
520fc4:	ff 30                	push   (%eax)